17. i-Trigger ユーザーガイド#
17.1 はじめに#
SALTYSTER i-Trigger(以降は本製品と記載)は、工場内の PLC 情報、センサー、カメラの映像を収集し、収集データの発生イベント(値変化)に応じて、該当時間のデータ(JSON)/映像(MP4)を作成し、ユーザーに提供します。本書は、それらの情報を収集するための設定、参照方法について説明します。
17.1.1 システム構成#
(システム構成図)
標準機能で提供するコネクタおよびエミッタ
種別 | 名称 | 説明 |
---|---|---|
コレクタ | リソース | 端末機器のシステム情報(CPU稼働率など)を収集 |
PLC ※ | PLCのレジスタ情報を収集 | |
カメラ | VIDEO | IPカメラ(最大3台) |
エミッタ | FILE | ローカルディスクへJSON/CSVファイルを出力 |
監視(エミッタ) | i-Trigger | 値変化に応じて、データ+動画切り出しを処理 |
サポートPLC(プロトコル)は、 SpeeDBeeHive(ユーザーガイド)の「補足」 をご参照ください。なお、機種により、別途調整が必要な場合があります。
17.1.2 動作環境#
Hardware | CPU | Intel(x86 互換)クロック1GHz以上/ARMv7 Processor |
Memory | 4Gbyte 以上 | |
Storage | 100~512Gbyte ※ストレージには、過去映像データを抽出するために指定された日数分の動画データを常時保存します。そのため、カメラ台数/フレームレート/ビットレート/解像度に応じた、容量をもつストレージを用意する必要があります。 | |
OS | Ubuntu 18.04 LTS | |
Ubuntu 20.04 LTS | ||
Raspbian GNU/Linux 10 (buster) ※実際の運用では、高スペックマシンでの Ubuntu を使った運用を推奨します | ||
Windows10 | ||
ブラウザ | Microsoft Edge, Google Chrome | |
IP Camera | H264(ビデオコーデック)、Rtspサポート ※メーカー特有の仕様により接続できないケースがあります。 |
17.2 初期設定#
17.2.1 設定画面の表示#
PCブラウザにて、下記のURLを入力し、SpeeDBee Hiveがインストールされた機器にアクセスする事で、設定画面が表示されます。
- Linux: http://xxx.xxx.xxx.xxx/hive
- Windows: http://xxx.xxx.xxx.xxx:8120/hive
「xxx.xxx.xxx.xxx」は機器のIPアドレスとなります。 アクセスするとユーザー認証のダイアログが表示されます。インストール直後のユーザー名、パスワードは下記を使用してください。
- ユーザー名: admin
- パスワード: admin
17.2.2 ライセンス設定#
各機能を有効化するために、ライセンスの設定を行います。
- ライセンスコードを入力し、「更新」ボタンをクリックし、ライセンス更新を行います。
ライセンスが更新されると上部にタブメニューが追加されます。
17.2.3 画面構成#
設定画面は、「共通部」、「メニュー」「サブメニュー」「設定画面」4つの領域で構成されています。 入力したライセンスコードにより表示されるメニューは異なります。
各メニュー、およびサブメニューから下記の内容を設定します。(※はオプション)
メニュー | サブメニュー | 設定画面で参照、更新する内容 |
---|---|---|
共通部 | ITS | サービスの稼働状況 |
ビューワー | ビューワー画面と設定画面へ相互遷移 | |
言語 | 日本語/英語への言語切り替え | |
システム | 制御 | サービスの起動、停止 |
サーバ設定 | サーバ名、データ保存期間など | |
パスワード変更 | 設定画面の認証パスワード | |
ソフトウェア情報 | バージョン情報、ライセンス更新 | |
サービス(※) | DBサービス | DBのサーバー/クライアント機能 |
OPC UA | OPC UAサーバー機能 | |
DBレプリケーション | 他の機器へのDB複製機能 | |
イベント(※) | トリガ | トリガ条件 |
イベント | イベント情報 | |
コマンド | イベント発生時の外部コマンド | |
コレクタ | リソース | システム情報の収集情報 |
PLC | PLCレジスタの収集情報 | |
カスタム(※) | ユーザー作成の情報収集 | |
エミッタ | AWS(※) | AWSの送信情報 |
Azure(※) | Azureの送信情報 | |
MQTT(※) | MQTTの送信情報 | |
FILE | ローカルディスクの出力 | |
FTP/FTPS(※) | FTP/FTPSの送信情報 | |
SFTP(※) | SFTPの送信情報 | |
Machine Advisor(※) | Machine Advisorの送信情報 | |
SensorCorpus(※) | SensorCorpusの送信情報 | |
カメラ | カメラ | カメラ情報 |
常時データ検索 | 常時録画データの再生 | |
監視 | 記録 | 監視イベント情報 |
17.3 SpeeDBee Hiveの機能#
本製品は、バックエンドのエンジンとして、SpeeDBee Hive を使用しています。 そのため、SpeeDBee Hive と同じ機能が利用できます。下記の機能について、それぞれ「SpeeDBee Hive(ユーザーガイド)」の該当する章をご参照ください。
17.4 カメラ#
録画する IP カメラの登録/更新/削除を行います。
17.4.1 カメラの登録/更新#
カメラの登録を行います。
-
カメラタブを選択し、サブメニューからカメラを選択します。
-
カメラ共通の設定である保存先とタイムアウトを設定します。
タイムアウトは、Test にてカメラへライブ接続する際の設定です。
-
カメラ一覧の表の列を1つクリックします。
表の各列に、カメラ情報を保存することができます。
-
各項目を入力します。
入力項目 説明 カメラ名 設置済みのカメラの任意の名称
カメラ全体で重複不可保存時間 常時録画した動画を保存する期間(時間数) 録画間隔 1ファイルの録画時間 RTSP URL RTSP の URL(カメラのマニュアル参照) 無効にする 常時録画を無効にする(設定のみ行う場合に利用) RTSPトランスポート RTSP通信を行う際のトランスポート層のプロトコル ポート範囲を指定する カメラからのデータを受信するUDPのポート範囲を指定する -
「保存」をクリックすると、カメラ情報が保存されます。カメラ情報を更新する場合は、カメラ一覧の表から列をクリックし、項目を編集して「保存」をクリックします。
17.4.2 カメラの削除#
カメラを削除します。個別で削除する方法と、一括で削除する方法があります。
17.4.2.1 個別削除#
カメラを個別で削除します。
-
カメラ一覧の表から、削除するカメラの列をクリックします。
-
「削除」をクリックします。
-
「削除」をクリックします。キャンセルすると、カメラは削除されません。
-
「削除」をクリックした場合は、指定したカメラが削除されます。
17.4.2.2 一括削除#
複数のカメラを一括で削除します。
-
カメラ一覧の表から、削除するカメラの列の「削除」にチェックを付けます。
-
「削除」をクリックします。
-
「削除」をクリックします。キャンセルすると、カメラは削除されません。
-
「削除」をクリックした場合は、指定したカメラが削除されます。
17.4.3 接続テスト#
カメラの接続テストを行います。
-
「Test」をクリックします。
-
設定が正しければ該当カメラのライブ映像が表示されます。
ライブ映像が表示されない場合、URLに誤りがないか確認してください。
ネットワーク状況によっては、接続に時間がかかる事があります。
その場合は、タイムアウトの設定を30000(30秒)以上など長めに設定して確認してください。
17.4.4 カメラ台数上限数の変更方法について#
常時録画で使用するカメラの上限数を変更するには、次の設定が必要です。
- カメラ台数の拡張数に対応した専用のライセンスコードの入力
- 専用の拡張設定ファイルの配置
- 拡張設定ファイル配置後のサービス再起動
17.4.4.1 手順#
-
配布されたライセンスコードを入力します。 入力方法は「ライセンス設定」をご参照ください。
-
配布された拡張設定ファイルを配置します。
-
WEBサーバーを再起動します。 拡張設定ファイルを配置した後、サービスの再起動を行います。サービスが再起動されるまで 設定は反映されません。 SpeeDBee Hive(ユーザーガイド)の「WEBサーバーの制御について」をご参照ください。
拡張設定ファイルの配置には、OSの管理者権限が必要です。 拡張設定ファイルについては、専用ライセンスコードと一緒に配布されます。 別途お問い合わせください。配置場所を下記に示します。
/usr/local/libexec/speedbeehive/conf/user_specification.json
C:\Program Files\SALTYSTER\SpeeDBeeHive\libexec\speedbeehive\conf\user_specification.json
17.4.5 常時データ検索#
常時録画した動画の検索/再生を行います。
17.4.5.1 検索#
-
サブメニューから常時データ検索をクリックします。
-
時間範囲とカメラを指定し、検索ボタンを押下します。
-
指定した時間範囲内で、指定したカメラの常時録画データが存在する日時が一時間ごとにリスト表示されます。ヘッダの「No」、「カメラ」、「時間」を押下すると、項目の昇順・降順にリストが並べ替えられます。ただし、画面に表示されているリスト内での簡易ソートとなります。
リスト表示できる件数は最大で1000件までとなります。
検索の日付範囲を狭めるなどして、検索の結果を絞ってください。
17.4.5.2 再生#
-
詳細ボタンを押下します。
-
指定した時間内に存在する常時録画データの一覧がリスト表示されます。ヘッダの「No」、「時間」を押下すると、項目の昇順・降順にリストが並べ替えられます。ただし、画面に表示されているリスト内での簡易ソートとなります。
-
VIEWボタンを押下します。
-
ポップアップ画面が表示されます。動画を再生/停止させるには、再生/停止ボタンまたは再生画面を押下してください。
-
閉じるボタンを押下すると、ポップアップ画面が閉じられます。
17.5 監視#
17.5.1 記録の登録/更新#
記録の登録を行います。
-
記録の「+」をクリックします。
-
下記の表の説明を参考に、各項目を入力します。
入力項目 説明 イベント名 記録の名称
記録内で重複不可分類 イベントの種別
・インフォメーション
・警告
・エラー無効にする 条件によるデータ+動画の切り出しを無効にする
(設定のみ行う場合に利用)保存期間 監視により切り出した動画とデータの保存期間(時) カメラ 条件に合致した場合に、動画切り出しする対象カメラ 記録時間 最大(分) 記録最大時間(分で指定) イベント前(秒) 開始イベントが発生した前の記録時間(秒) イベント後(秒) 終了イベントが発生した後の記録時間(秒) 開始イベント コレクタ 条件に使用するコレクタ データ 条件に使用するデータ 条件 Regist データが収集された場合 = 値が一致 != 値が不一致 < 値が条件値より小さい > 値が条件値より大きい Custom 条件式を自由に入力 条件種別 True 条件式が真なら発生 False 条件式が偽なら発生 Fall 条件式が真→偽の際に発生 Raise 条件式が偽→真の際に発生 同一イベント無効時間(秒) 同じイベントが連続発生した場合、通知を無視する時間 終了イベント 利用 終了イベントを有効にする場合ON コレクタ 条件に使用するコレクタ データ 条件に使用するデータ 条件 Regist データが収集された場合 = 値が一致 != 値が不一致 < 値が条件値より小さい > 値が条件値より大きい Custom 条件式を自由に入力 条件種別 True 条件式が真なら発生 False 条件式が偽なら発生 Fall 条件式が真→偽の際に発生 Raise 条件式が偽→真の際に発生 データセット コレクタ イベント発生時に出力するコレクタ データ イベント発生時に出力するデータ データセット追加 データを追加する データセット削除 追加したデータを削除する コマンド 外部コマンドを利用する 外部コマンドを利用する場合にON
コマンドを最大3つまで指定可能コマンド イベント発生時に実行するOSコマンド バックグランド OSコマンドをバックグランド起動する場合ON -
「保存」をクリックすると、記録が登録されます。
- サブメニューから該当の記録を選択、項目を編集後に「保存」をクリックすると、情報が更新されます。
補足
-
記録情報はカメラ1台以上、データセット1件以上を指定する必要があります。
-
全体の記録時間は、下記の図を参照してください。
-
開始イベントのみ指定
-
開始、終了イベント指定
-
全体の記録時間が最大記録時間を超過した場合、強制的に記録は終了します。
-
サービスを停止した場合、記録中のデータはその時点の状態で保存されます。常時録画の動画データが保存前であれば切り出しされない事があります。
-
-
条件「Custom」で入力できる条件式については、「トリガの登録」の「条件式について」を参照してください。
17.5.2 記録の削除#
記録の削除を行います。
-
対象の記録をクリックして、「削除」をクリックします。
-
「削除」をクリックします。キャンセルすると、記録は削除されません。
-
「削除」をクリックした場合は、記録が削除されます。
17.5.3 記録の設定コピー#
既存の設定をコピーして、監視を登録します。
-
コピーしたい記録をクリックして、「コピー」をクリックします。
-
イベント名を変更、その他変更の必要な箇所を変更して、「保存」をクリックします。
補足
- この機能は、登録済みの監視と設定したい内容が類似している場合に活用してください。
- 登録されているイベント名と同じイベント名は使えません。
17.6 ビューワー#
記録した情報を映像、グラフにて参照します。
- イベント一覧(左側の枠):監視設定で記録されたイベント一覧(記録情報一覧)を表示します。(「イベント一覧」を参照)
- イベント詳細(右側の枠):イベント一覧で選択したイベントの詳細を表示します。(「イベント参照」を参照)
17.6.1 イベント一覧#
画面要素 | 説明 |
---|---|
![]() |
チェックボックスがONとなっているイベントを一括削除します |
![]() |
チェックボックスがONとなっているイベントのデータを一括でダウンロードします |
![]() |
イベント一覧を再読み込みします |
YYYY/MM/DD(図では2021/01/29) | イベント一覧に表示するイベントの日時を選択します |
![]() ![]() |
表示順(時間で昇順、降順)を切り替えます |
イベント選択 | 選択したデータを画面右に表示します |
チェックボックス | 削除またはダウンロードするデータを選択します |
![]() ![]() ![]() |
記録されたイベント情報の分類を示しています |
補足
- 最初に表示されるイベント一覧は、当日の年月日が選択されます。
- ブラウザと i-Trigger のインストールされているマシンは、同じタイムゾーンを設定してください。
17.6.2 ダウンロード手順#
以下の手順で任意のイベントをダウンロードできます。
-
ダウンロードするイベントのチェックボックスをONにする
-
ダウンロードボタン
を選択
17.6.2.1 ZIP 構造#
ZIP ファイルは下記の構成でデータを格納しています。
2020-07-08 年月日フォルダ (yyyy-mm-dd)
├─13-59-06.099_3 時間フォルダ (hh-mi-ss.SSS_イベント ID)
│ ├─event.json イベント、PLC データ情報 *1
│ ├─camera1.mp4 カメラ1の映像
│ ├─camera2.mp4 カメラ2の映像
│ └─camera3.mp4 カメラ3の映像
└─ 14-11-46.126_3 時間フォルダ (hh-mi-ss.SSS_イベント ID)
├─(省略)
:
ZIPファイル内に含まれるJSONファイルの書式は、「JSON書式」を参照してください。
17.6.3 イベント参照#
選択した記録情報を参照します。
17.6.3.1 グラフ/映像連携#
スライドバー、および再生機能により、映像とグラフを連動して表示します。
データが文字列型の場合は、映像と表を連動して表示します。表示するデータが存在しない場合は「NO DATA」と表示されます。
17.6.3.2 グラフ切り替え#
のクリックにより、全体グラフと部分表示(60 秒固定)のグラフに切り替えて表示します。
記録時間が長時間の場合、部分グラフに切り替える事で、折れ線グラフの値変化が見やすくなります。
全体グラフ
部分グラフ
補足
- 文字列型のデータ表は、グラフ切替ボタンで表示を切り替えることができません。
17.6.3.3 グラフ非表示#
グラフ左上のチェックボックスをOFFにすることにより、グラフ毎に表示非表示を切り替えることができます。
映像再生、グラフ描画は PC ブラウザ機能で行っています。 そのため、大量データや解像度の高い動画を参照すると、処理が遅延する場合があります。(PC 性能に依存)
17.7 OCRコレクタ#
OCRコレクタを使用するための事前設定、および、登録/更新/削除の方法について説明します。
17.7.1 OCRコレクタの辞書ファイル登録#
一部の環境においては OCR 用の辞書ファイルを別途インストールする必要があります。 下表に示すプラットフォームおいては、手順に従って辞書ファイルをインストールしてください。
17.7.1.1 別途辞書ファイルのインストールが必要なプラットフォームと必要なファイル#
プラットフォーム | ファイル |
---|---|
Windows | ・setup.bat ・ocr_dict.tar.gz |
BlackBear | ・setup.sh ・ocr_dict.tar.gz |
必要ファイルは SpeeDBeeHive/i-Trigger のインストーラーと合わせて配布しています。 不明な場合はお問い合わせください。
17.7.1.2 辞書ファイルインストール手順#
Windows
- 上記の必要ファイルをSpeeDbeeHive/i-TriggerがインストールされているPC内の1つのフォルダ内に配置する
- Windows エクスプローラ上でsetup.batを右クリック
- 「管理者として実行(A)」を選択
- ユーザーアカウント制御のウィンドウで「はい」を選択
以上で辞書ファイルがインストールされます
BlackBear
- 上記の必要ファイルを、SpeeDBeeHive/i-Triggerがインストールされているデバイス内の/tmpディレクトリに配置する
- シェルを起動して、下記のコマンドを実行する
cd /tmp chmod +x setup.sh sudo ./setup.sh
以上で辞書ファイルがインストールされます
17.7.2 OCRコレクタの登録/更新/無効化{: #ocr_setting }#
OCRコレクタの登録を行います。
-
カメラタブを選択し、「OCR」を選択します。
カメラの設定がされていない場合は、本項目「カメラの登録/更新」を参照してください。 -
各項目に入力して、「保存」を選択すると OCR コレクタ情報が更新されます。
入力項目 説明 画像ファイル保存先 設定したカメラで録画したより取得した静止画像ファイルの保存先(変更不可) OCR実行後、画像ファイルを自動削除する OCRを実行後、対象画像ファイルを削除する 無効にする OCRを無効にする(設定のみ行う場合に利用)
17.7.3 領域の編集#
OCR解析する領域の編集を行います。
17.7.3.1 領域の登録/参照#
領域の登録/参照を行います。
-
「編集」を選択します。
-
各項目を入力し、「領域指定」を選択します。
入力項目 説明 領域名 指定領域の任意の名称 データ型 OCR解析を行うデータのデータ型 無効にする 指定した領域を無効にする(設定のみ行う場合に利用) 永続化する ストレージ上に保存する -
マウスをドラッグし、任意の領域を指定し「確定」を選択します。
範囲を誤った場合は、再度、同じ操作を行います。 領域の指定をキャンセルしたい場合は、「閉じる」を選択します。
-
「新規」を選択すると領域一覧に選択した領域情報が登録されます。
-
「戻る」を選択すると OCR コレクタ画面に戻ります。
17.7.3.2 領域の更新/削除#
領域の更新/削除を行います。
■更新
-
変更したいデータを選択、各項目を設定し「更新」を選択します。
領域指定の変更も可能です。「更新」を選択します。
■削除
-
削除したいデータ右側にあるチェックボックスを ON にし、「削除」を選択します。
注意事項
文字認識の精度はカメラの精度に依存します。 瞬間的に文字が変化する文字を対象とする場合は、誤認識する可能があります。
17.7.4 制限事項#
現バージョンにおいて、OCRコレクタには以下の制限事項があります。
- Raspberry Pi環境においてPythonカスタムコレクタと同時には使用できない
17.8 補足#
17.8.1 制限事項#
制限事項 | 制限内容 | |
---|---|---|
カメラ | 接続台数 ※上限数の変更方法については、 「カメラ台数上限数の変更方法について」をご参照ください。 |
0~4 |
常時録画データ保存期間(時間) | 1~168 | |
常時録画データ保存間隔(秒) | 10~120 | |
記録 | 記録情報の登録数 | 0~8 |
最大記録時間(分) | 1~9 | |
イベント前録画時間(秒) | 1~120 | |
イベント後録画時間(秒) | 1~120 | |
同一イベントの無効時間(秒) | 1~540 | |
記録データの保存期間(日) ※画面からは設定変更できません。 将来的には指定できるよう拡張予定です。 |
31 |
上記以外の制限事項については、SpeeDBee Hive(ユーザーガイド)の「制限事項」をご参照ください。
17.8.2 JSON書式#
ビューワーでダウンロードしたZIPファイルに含まれるJSONデータの書式
{
"record_id": 3, 記録 ID
"record_name": "記録 A", 記録名
"pre_sec": 60, イベント前録画時間(秒)
"end_sec": 60, イベント後録画時間(秒)
"data_sets": [ データコレクタの収集情報
{
"collector_name": "PLC_A", コレクタ名
"data_name": "生産数", データ名
"data_array": 1, デバイス配列
"data_type": "double", データ型
"values": [ 値リスト
{
"time": 1594184286326, タイムスタンプ(エポックミリ秒)
"val": 1397 値(デバイス配列が 2 以上の場合、"val":[値 1,値 2,,,]の配列形式で格納)
},
{
"time": 1594184286592,
"val": 1331
},
(省略) データ数分繰り返し
……
]
},
{
"collector_name": "PLC_A", コレクタ名
"data_name": "生産数", データ名
"data_array": 1, デバイス配列
"data_type": "double", データ型
"values": [ 値リスト
{
"time": 1594184286326, タイムスタンプ(エポックミリ秒)
"val": 1397 値(デバイス配列が 2 以上の場合、"val":[値 1,値 2,,,]の配列形式で格納)
}, タイムスタンプ(エポックミリ秒)
(省略) データ数分繰り返し
……
]
}
],
"videos": [ 動画情報
{
"camera_id": 1, カメラ ID
"name": "カメラ A", カメラ名
"file_name": "camera1.mp4", 動画ファイル名
"codec": "h264 (Main)", ビデオコーデック
"frame_size": "1024x640", フレームサイズ
"fps": 30, フレームレート
"start_time": 1594184285659, 録画開始時間(エポックミリ秒)
"end_time": 1594184406073, 録画開始時間(エポックミリ秒)
"seek_time": 467, 先頭位置からの SEEK 時間(ミリ秒)
"duration": 120414 全体録画時間(ミリ秒)
},
{
"camera_id": 2,
"name": "カメラ B",
(省略)
……
},
(省略)
……
],
"event_time": [
1594184346099 開始イベント時間(エポックミリ秒)
], 終了イベントが指定されている場合は、[開始時間,終了時間]で格納
"start_time": 1594184286099, 記録開始時間(エポックミリ秒)
"end_time": 1594184406099 記録終了時間(エポックミリ秒)
}
動画は H264 の I フレーム(全データを含むフレーム)を起点として動画抽出を行っています。そのため、記録開始時間と動画開始時間が同一時間になりません。
記録開始時間から動画を再生するには、最初に seekTime(ミリ秒)分、シークしてから再生する必要があります。
記録時間から正確に抽出するには動画変換(デコード/エンコード)する必要がありますが、変換処理は大きな負荷が発生するため、上記の仕様となっております。