1. SpeeDBee Hive ユーザーガイド#
1.1 はじめに#
SpeeDBee Hive (以降Hive)は、コレクタが各種情報を収集し、エミッタが他システムへデータ送信を行います。収集データは時系列データベースに保存し、DB機能にて、リアルタイム分析(基本統計など)する事が可能です。またエミッタにより、過去データも含めて送信前にデータを再分析し、送信する事ができます。 本書は、Hiveを動作するための設定方法について説明します。
標準機能で提供するコネクタおよびエミッタ
種別 | 名称 | 説明 |
---|---|---|
コレクタ | リソース | 端末機器のシステム情報(CPU稼働率など)を収集 |
PLC ※ | PLCのレジスタ情報を収集 | |
エミッタ | AWS | AWSサービス(IoT Core)へのデータ送信 |
Azure | Azureサービス(IoT Hub)へのデータ送信 | |
MQTT | MQTTブローカーへメッセージ送信 | |
FILE | ローカルディスクへJSON/CSVファイルを出力 | |
FTP/FTPS | FTP/FTPSを用いてのファイル送信 | |
SFTP | SFTPを用いてのファイル送信 | |
Machine Advisor | EcoStruxure Machine Advisorへのデータ送信 | |
SensorCorpus | SensorCorpusへのデータ送信 | |
カスタム | ユーザーによる独自エミッタの開発 (対応言語:Python) |
サポートPLC(プロトコル)は、 「補足」 をご参照ください。なお、機種により、別途調整が必要な場合があります。
1.2 初期設定#
1.2.1 設定画面の表示#
PCブラウザにて、下記のURLを入力し、SpeeDBee Hiveがインストールされた機器にアクセスする事で、設定画面が表示されます。 現時点ではMicrosoft Edge、もしくはGoogle Chromeでのアクセスのみをサポートしています。
- Linux: http://xxx.xxx.xxx.xxx/hive
- Windows: http://xxx.xxx.xxx.xxx:8120/hive
「xxx.xxx.xxx.xxx」は機器のIPアドレスとなります。 アクセスするとユーザー認証のダイアログが表示されます。インストール直後のユーザー名、パスワードは下記を使用してください。
ユーザー名
-
admin
パスワード
-
admin
利用可能なブラウザは、Microsoft Edge/Google Chromeになります。
1.2.2 ライセンス設定#
各機能を有効化するために、ライセンスの設定を行います。
- ライセンスコードを入力し、「更新」ボタンをクリックし、ライセンス更新を行います。
ライセンスが更新されると上部にタブメニューが追加されます。
1.2.3 ポイント制ライセンスについて#
ポイント制ライセンスとは、ポイントを購入し、そのポイントに応じて利用できる機能を決定するライセンスです。
ポイント制ライセンスを登録した場合、購入したポイントがソフトウェア情報に表示されます。
また、画面上ですべての機能が有効となっています。
設定した機能のポイントを合計して利用ポイントとします。
例として、PLCコレクタ(2p)、EnOceanコレクタ(2p)、AWSエミッタ(2p)、MQTTエミッタ(2p)を設定した場合、利用ポイントは8pとなります。
- Hiveを起動する際、利用ポイントが購入したポイントを超えている場合、Hiveが起動しなくなります。
- 各機能のポイントについては、機能一覧をご覧ください。
1.2.4 WEBサーバーの制御について#
WEBサーバーの制御(起動・停止・再起動)は、次の手順で行います。
1.2.4.1 Linux#
-
起動
$ sudo systemctl start sbhived-setting-server
-
停止
$ sudo systemctl stop sbhived-setting-server
-
再起動
$ sudo systemctl restart sbhived-setting-server
利用形態2については、コマンド引数が一部異なります。 利用形態2をご覧ください。
1.2.4.2 Windows#
-
起動 (speedbeehiveが停止状態の場合に選択可能です。)
Windowsメニューから「サービス」を起動し、speedbeehiveを右クリックして「起動」を選択
-
停止
Windowsメニューから「サービス」を起動し、speedbeehiveを右クリックして「停止」を選択
-
再起動
Windowsメニューから「サービス」を起動し、speedbeehiveを右クリックして「再起動」を選択
1.2.5 画面構成#
設定画面は、「メニュー」「サブメニュー」「設定画面」3つの領域で構成されています。
各メニュー、およびサブメニューから下記の内容を設定します。(※1はオプション)
メニュー | サブメニュー | 設定画面で参照、更新する内容 |
---|---|---|
システム | 制御 | サービスの起動、停止 |
サーバ設定 | サーバ名、データ保存期間など | |
パスワード変更 | 設定画面の認証パスワード | |
ソフトウェア情報 | バージョン情報、ライセンス更新 | |
サービス(*1) | データベース | DBのサーバー/クライアント機能 |
OPC UA | OPC UAサーバー機能 | |
DBレプリケーション | 他の機器へのDB複製機能 | |
イベント(*1) | トリガ | トリガ条件 |
イベント | イベント情報 | |
コマンド | イベント発生時の外部コマンド | |
コレクタ | リソース | システム情報の収集情報 |
PLC | PLCレジスタの収集情報 | |
カスタム(※1) | ユーザー作成の情報収集 | |
エミッタ | AWS | AWSの送信情報 |
Azure | Azureの送信情報 | |
MQTT | MQTTの送信情報 | |
FILE | ローカルディスクの出力 | |
FTP/FTPS | FTP/FTPSの送信情報 | |
SFTP | SFTPの送信情報 | |
Machine Advisor | Machine Advisorの送信情報 | |
SensorCorpus | SensorCorpusの送信情報 | |
Custom(Python) | ユーザーがPythonで作成したエミッタに渡す情報 |
1.2.6 機能一覧#
標準で提供されている機能と、オプションで利用できる機能の一覧です。
カテゴリ | 機能 | 標準機能 | オプション | ポイント |
---|---|---|---|---|
サービス機能 | DBサービス | ● | 3 | |
レプリケーション | ● | - | ||
OPCUA | ● | 4 | ||
コレクタ機能 | リソースコレクタ | ● | 0 | |
PLCコレクタ(全メーカー) | ● | 2 | ||
MODBUS TCP/RTU | ● | 2 | ||
EnOceanコレクタ(※) | ● | 2 | ||
カスタムコレクタ(C,Python) | ● | 2 | ||
ビデオコレクタ(※) | ● | 3 | ||
OCRコレクタ(※) | ● | 1 | ||
RFIDコレクタ(※) | ● | 2 | ||
MQTTコレクタ | ● | 2 | ||
イベントコレクタ | ● | 2 | ||
SmartHopコレクタ | ● | 2 | ||
演算コレクタ | ● | 2 | ||
Edgecross RT Receiver | ● | 2 | ||
イベント機能 | トリガ・イベント設定・外部コマンド連携 | ● | 3 | |
PLC書込み | ● | 3 | ||
エミッタ機能 | AWS | ★ | 2 | |
Azure | ★ | 2 | ||
MQTT | ★ | 2 | ||
File | ● | 0 | ||
File(FTP/FTPS/SFTP) | ● | 2 | ||
Machin Advisor | ● | 2 | ||
SensorCorpus | ● | 2 | ||
カスタム(Python) | ● | 2 | ||
リアルタイム分析機能 | 基本統計① | ● | 0 | |
移動平均 | ● | 2 | ||
FFT | ● | 2 | ||
集約機能 | 基本統計① | ● | 0 |
補足
- 機能の※について、対象機能は一部の実行環境には対応していません。
- 標準機能の★と▲についてはどれか 1 種類のみ有効です。
1.3 システム設定#
1.3.1 制御#
サービスの起動・停止および、コレクタ/エミッタの状態を参照します。
- 「停止」をクリックし、サービスを停止します。
- 「起動」をクリックし、サービスを起動します。
補足
- Hiveサービスはシステム再起動で自動起動する設定になっています。
※初回起動時は未設定のため、停止状態です。 - 設定を変更した場合、サービスを再起動しないと反映されません。
- コレクタ・エミッタの名称をクリックするとその設定画面に移動します
- ディスク容量が10MB以下(カメラ登録時は200MB以下)になると、Hiveが自動で停止します。
1.3.1.1 コレクタ/エミッタに表示されるアイコン#
-
コレクタ/エミッタに表示されるアイコンの意味は下記の通りです。
-
種別
アイコン 内容 リソースコレクタ PLCコレクタ
SmartHopコレクタカスタムコレクタ MQTTコレクタ ビデオコレクタ
OCRコレクタRFIDコレクタ
EnOceanコレクタ
作業検出RFIDコレクタイベントコレクタ 演算コレクタ Edgecross RT Receiver 送信先がAWS 送信先がAzure 送信先がMQTT ファイルに保存する 送信先がFTP/FTPS/SFTP 送信先がMachine Advisor 送信先がSensorCorpus 送信先がカスタム 削除済み -
状態
アイコン 内容 動作している エラーが発生して、停止している 稼働していない -
警告
アイコン 内容 問題は発生していない 警告が発生している エラーが発生している 稼働していない
※警告、エラー発生時は警告欄のをクリックすることでログが表示されます。
-
変更・無効
アイコン 内容 設定が無効化されている(稼働していない) 設定が削除されている
-
-
サービスを再起動し、設定が反映すると削除/変更アイコンはクリアされます。
1.3.2 設定#
サーバの基本情報、コレクタで利用する情報の設定を行います。
-
下記の項目を入力します。
入力項目 説明 サーバ名 システム内においてユニークで任意な名称を設定
エミッタのメッセージでIDになる説明 サーバの説明 ストレージパス データベースの保存先ディレクトリ ストレージ保存期間(分) ストレージ上にデータを保持する時間 (60~9999) メモリ保存期間(分) メモリ上にデータを保持する時間 (5~30) カスタムモジュールパス カスタムモジュールの格納ディレクトリ デバイス名 コレクタで利用するシリアルデバイスファイル名 通信速度 ビットの転送速度 データビット 送信データのビット長 ストップビット 送信データの終端を表すビット長 パリティ パリティチェックに使用するビット 通信モード シリアル通信のアーキテクチャ -
「保存」をクリックし、設定を更新します。
補足
- ストレージパス、カスタムモジュールパスは、システムに存在するディレクトリを指定してください。
- ストレージパスを変更した場合、現在まで保存したデータは無効になります。
(※データ自体は削除されないため、手動で削除する必要があります) - ストレージ保存期間が長時間の場合、ストレージパスで容量に余裕がある外部ストレージを指定する事を推奨します。
(SDカードなど) - メモリ保存期間を長時間にすると、システムのメモリ利用量が増加します。
- カスタムコレクタはオプションになります。
- シリアルの削除はデバイス名を空欄で更新すれば削除されます。なお、コレクタで利用されていた場合は更新できません。
1.3.3 パスワード変更#
設定画面のログインで利用するadminユーザーのパスワードを変更します。
- 「パスワード」、「確認」項目に同一のパスワード文字列を入力します。(6~10文字)
-
「更新」をクリックし、パスワードを変更します。
1.3.4 データ分布モニタ#
コレクタで登録した値を、時間軸上で分布表示します。システム設定の制御からサービスを起動している状態で使用できます。
- コレクタ選択で表示するコレクタを選択します。
- 他にも表示したい場合、「+コレクタを追加」で表示するコレクタを追加します。
- 「適用」でデータ分布モニタが表示されます。
- 分布モニタへマウスカーソルを合わせると、データの値(登録時間)が表示されます。
補足
- 「全てのコレクタを追加」で全コレクタを追加することができます。ただし、システム負荷が高まるため、使用には十分に注意してください。
- コレクタ右の「グラフに移動」で該当コレクタ表示箇所へ遷移します。
- 「画面TOP」に移動で、最上部に遷移します。
1.4 サービス#
1.4.1 データベース#
DBのサーバー/クライアント機能を設定します。
1.4.1.1 データベース設定#
データベース設定を更新します。
-
下記の項目を入力し、「保存」をクリックし設定を保存します。
入力項目 説明 ポート 開放するポート セッションタイムアウト(秒) セッションのタイムアウト時間(1~300) 受信タイムアウト(秒) 受信時のタイムアウト時間(1~300) 送信タイムアウト(秒) 送信時のタイムアウト時間(1~300) 最大セッション数 セッションの最大数(1~16) 最大カーソル数 カーソルの最大数(1~8) 無効にする データベースを利用するか ユーザー名 データベース接続時に使用するユーザー名 パスワード データベース接続時に使用するパスワード - ユーザー名、パスワードを設定しないと接続できません。
- ユーザー名、パスワードは最大5個まで設定できます。
1.4.1.2 カラムの編集#
-
「編集」をクリックし編集画面に移動します。
-
登録
下記の項目を入力します。入力項目 説明 データ名 カラム名の「$db_service:」以降に表示されるユニークな任意の名称 データ型 登録するカラムのデータ型を選択 配列数 上記のデータ型の配列数 サンプルレート 登録するカラムのサンプルレート 永続化する ストレージ上に保存する リアルタイム分析を利用する リアルタイム分析を利用する
チェック時には基本統計、移動平均値、FFTが編集可能
※FFT解析はサンプルレートが1以上の時のみ編集できます
※各項目の詳細は 「補足」 をご参照ください補足
カラム値、またはリアルタイム分析の値を永続化した項目が、エミッタの選択対象になります。
-
「新規」をクリックして保存します。
-
カラム一覧に追加されます。
入力項目を変更して、「新規」をクリックする事で連続登録できます。 -
更新
変更するカラムを選択します。
変更する項目を入力し、更新をクリックします。(入力項目は新規カラムと同様です)
-
削除
カラム一覧の右にあるチェックボックスをONにし、「削除」をクリックします。カラム削除、カラムの永続化ON→OFF、カラムの分析項目をON→OFFにする事で収集項目がなくなります。エミッタにて、そのデータ項目を利用している場合、自動削除されます。
1.4.2 OPC UA設定#
OPC UA設定を行います。
-
下記の項目を入力し、「更新」をクリックし設定を保存します。
入力項目 説明 ポート 開放するポート サーバータイプ Standalone or with-idmse 外部LDS URL 外部LDSを設定する場合のURL 無効にする OPC UAを無効化する ゲストユーザーを許可する ゲストユーザーを許可する ユーザー名 接続時に使用するユーザー名 パスワード 接続時に使用するパスワード ユーザー名、パスワードは最大5個まで設定できます。
1.5 コレクタ#
コレクタ設定を参照/登録/更新します。
本バージョンは提供するコレクタは、リソース、PLC、カスタムとなります。
1.5.1 リソースコレクタ#
Hiveが稼働する機器のシステム情報などの収集設定をします。
収集可能な情報は、CPU使用率、CPUクロック数、CPU温度、I/O状況、メモリ利用量、ネットワーク利用状況です。
-
下記の項目を入力し、「保存」をクリックし設定を保存します。
入力項目 説明 取得周期(秒) データを収集する周期(1~60秒) 分析幅 リアルタイム分析を利用する場合の分析幅
(件数:1~1000、秒:1~60)分析単位 秒 または 件数 I/Oデバイス I/O項目を有効にした際に取得するデバイス NETデバイス ネットワークを有効にした際に取得するデバイス リソース項目 ・収集
収集の有無
・分析
リアルタイム分析の有無、分析内容
・永続化
ストレージ保存の有無- IOデバイスに指定したデバイスがなくなった場合、リソースコレクタが起動できない場合があります。 その場合はリソースコレクタを再設定してHiveを再起動してください。
- 永続化した項目がエミッタでの選択対象になります。
1.5.2 PLCコレクタ#
コレクタ設定を参照/登録/更新を行います。
1.5.2.1 PLCの登録#
PLCの新規登録を行います。
-
PLCの
をクリックします。
-
下記の項目を入力します。(入力項目は機種により違います。)
-
共通項目
入力項目 説明 PLC名 データを収集するコレクタ名
コレクタ全体で重複不可機種 接続するPLC機種 エンディアン PLCのバイトオーダ
(Modbus TCP選択時のみ入力可能)無効にする コレクタの稼働を無効にする(設定のみ行う場合に利用) 常時接続する PLC接続を問い合わせの都度、切断しない 一括取得 一度に複数のReadレジスタの読み込みを行う ブロック取得 一度に複数のReadレジスタの読み込みを行う
(三菱対応機種のみで使用可能)補足
- 一括取得は、対応機種のみで選択可能です。有効にすると、データ取得が高速化します。
一括取得では、1つのレジスタの設定に不備がある場合、そのレジスタを含む一括取得の全レジスタが取得エラーとなります。
一括取得をONにした状態でエラーが発生する場合、一括取得をOFFにして再度テスト接続を実行してください。
一括取得をOFFにすることで、アドレスなどの指定が不正な場合エラー内容が確認できます。
一括取得がOFFでエラーが発生しない場合、一括取得またはブロック取得に対応していない機種となります。 - 一括取得が未設定の場合は、Readレジスタ毎に個別で読み込みます。
- MELSEC-Qシリーズ(QnA互換3Eフレーム)の一括取得とブロック取得は次のように動作します。
一括取得は、ワードレジスタのみを一括読み込みします。(0403コマンド使用)
ブロック取得は、ビットレジスタ、ワードレジスタを一括読み込みします。(0406コマンド使用) - ブロック取得は、一括取得を有効にすると選択可能となります。
(MELSEC-Qシリーズ(QnA互換3Eフレーム)のみ) - ブロック取得については、テスト接続にてデータ取得できることを確認してください。エラーになる場合は、接続しているPLCがこの機能に対応していません。
- 一括取得は、対応機種のみで選択可能です。有効にすると、データ取得が高速化します。
-
TCP/IP
入力項目 説明 IPアドレス PLCのIPアドレス ポート PLCのポート番号 -
タイムアウト
入力項目 説明 接続タイムアウト(ms) 接続時のタイムアウト時間(100~10000ミリ秒) 読込タイムアウト(ms) 読込時のタイムアウト時間(100~10000ミリ秒)
-
-
「保存」をクリックし、PLC設定を保存します。
補足
- サポート機種は 「補足」 に記載した機種別の資料をご参照ください。
- 機種により、「常時接続する」のみの場合があります。
1.5.2.2 PLCの参照・更新・削除#
PLCの参照/更新/削除を行います。
- サブメニューから参照するPLCをクリックし参照します。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
データを削除したい場合は、「削除」をクリックし、設定を削除します。
PLCを削除すると、レジスタで設定した収集項目がなくなります。 エミッタにて、そのデータ項目を利用している場合、自動削除されます。
1.5.2.3 読出しレジスタの編集#
PLCレジスタの収集情報を設定します。
-
「編集」をクリックします。
-
登録
下記の項目を入力します。入力項目 説明 レジスタ名 データ名称(読出しレジスタ内で重複しない名称) アドレス PLCのレジスタアドレス データ型 上記アドレスを先頭にして取得するデータ型を選択 配列数 上記のデータ型で配列数を設定(アドレスの点数ではない) 種類 「Modbus RTU/TCP」をご参照ください エンディアン レジスタ単位でのバイトオーダを選択
(※-の場合、コレクタのエンディアンを適用)
Modbus RTU/TCP選択時に以下に該当する場合に入力可能
データ型:
UINT32 or INT32 or UINT64 or INT64 or FLOAT or DOUBLE
種類:
保持レジスタ or 入力レジスタ収集方式 収集方式を選択
・周期
指定された間隔でデータを取得
・値変化
前回値と異なる時にデータを取得
・ビットON
前回値が0で取得したデータが0以外収集間隔(秒) レジスタ値を取得する間隔を0.1秒単位で指定
(0.1~9999.9秒)条件 取得した値を比較しTrueの場合のみ送信 ※1) 条件値 上記の条件が指定されたときの比較値 数値変換 変換式および変換後のデータ型 登録条件 DBに登録するデータの判定式 無効にする 情報収集を無効にする(設定のみ行う場合に利用) 永続化する ストレージ上に保存する リアルタイム分析を使用する リアルタイム分析を利用する。
チェック時には基本統計、移動分析値を編集可能
* 各項目の詳細は 「補足」 をご参照ください条件が【等しい】or【等しくない】の設定時の注意
浮動小数点の場合(データ型:FLOAT、DOUBLE)、丸め誤差があるため一致判定ができない場合があります。
補足
- 指定できるレジスタアドレスは、 「補足」 の機種別の資料をご参照ください。
- レジスタ値、または基本統計の値を永続化した項目が、エミッタの選択対象になります。
- ビットレジスタは、データ型BOOLを設定する必要があります。
- ワードレジスタは、データ型BOOLを設定する事はできません。
- 数値変換、登録条件については「コレクタの共通機能」を参照してください。
-
「新規」をクリックし、レジスタ設定を保存します。
-
レジスタ一覧に追加されます。
※入力項目を変更して、「新規」をクリックする事で連続登録できます。 -
更新
変更するレジスタを選択します。 -
変更する項目を入力し、更新をクリックします。
(入力項目は新規レジスタと同様です) -
削除
レジスタ一覧の右にあるチェックボックスをONにし、「削除」をクリックします。
レジスタ削除、レジスタの永続化ON→OFF、レジスタの分析項目をON→OFFにする事で収集項目がなくなります。エミッタにて、そのデータ項目を利用している場合、自動削除されます。
1.5.2.4 ニーモニックファイルからの読出しレジスタ自動設定#
一部のメーカーのPLC(キーエンス、OMRON、三菱)では、ラダープログラムで使用しているレジスタをニーモニックファイルから読み込み、自動で一括設定することが出来ます。
-
「編集」をクリックします。
-
[Readレジスタ自動設定]ボタンをクリックします。
-
読み込むニーモニックファイルを選択します
データ型、収集方式、収集間隔等、変更が必要な場合は、一括設定後レジスタごとに項目を変更して、更新してください。 更新の手順は、読出しレジスタの編集の5.更新を参照してください。
※各対応メーカーのニーモニックファイルについてはニーモニックファイル出力方法を参考にしてください。
1.5.2.5 書込みレジスタの編集#
PLCレジスタの書込み情報を設定します。
PLC書込みについて
書込みレジスタ設定は注意して設定してください。
意図しない書込みレジスタ設定がされた場合、機械・装置が誤作動することもあるため事前に十分な検証を行ってください。
-
「編集」をクリックします。
-
ReadからWriteに切り替えます。
-
登録
下記の項目を入力します。
入力項目 説明 レジスタ名 データ名称(書込みレジスタ内で重複しない名称) アドレス PLCのレジスタアドレス
※指定できるレジスタアドレスは、 「補足」 の機種別の資料をご参照くださいデータ型 上記アドレスを先頭にして書き込む値のデータ型を選択 配列数 上記のデータ型で配列数を設定(アドレスの点数ではない) 種類 「Modbus RTU/TCP」をご参照ください エンディアン レジスタ単位でのバイトオーダを選択
(※-の場合、コレクタのエンディアンを適用)
Modbus RTU/TCP選択時に以下に該当する場合に入力可能
データ型:
UINT32 or INT32 or UINT64 or INT64 or FLOAT or DOUBLE
種類:
保持レジスタイベント レジスタへの書込みの起点となるイベントを選択
※イベントの設定方法については「イベント」をご参照ください値種別 レジスタに書き込む値を設定 固定値
指定された値でレジスタに書込み
※配列数を2以上に設定した場合、配列数分の、指定された値を書き込みますコレクタ
事前に設定されているコレクタのデータを選択
選択されたデータの値でレジスタに書込み
※書き込まれる値は、最も新しく取得された値です
※配列数を、選択したデータの配列数と同じにする必要がありますイベント
上記で設定したイベントのトリガとなる値で、レジスタに書込み無効にする レジスタへの書込みを無効にする(設定のみ行う場合に利用) データ型について
書き込む値のデータ型は、書込みレジスタに設定するデータ型と一致させる必要があります。
以下の表を参照してください。書込みレジスタに設定するデータ型 書き込む値のデータ型 BOOL型 BOOL型 整数型 整数型 浮動小数点型 浮動小数点型 STRING型 STRING型 ※整数型と浮動小数点型の変換は行われないため、整数型と浮動小数点型を一緒に設定することは出来ません。
(例:書込みレジスタに整数型が設定されている時、浮動小数点型のデータを書き込むことは出来ません。)
※整数型と浮動小数点型については、書込みレジスタに設定されているデータ型と同じサイズ、または小さいサイズのデータ型の値を書き込むことが出来ます。
(例:書込みレジスタにINT32が設定されている時、INT16、UINT16、INT32、UINT32のデータを書き込むことが出来ます。) -
「新規」をクリックし、レジスタ設定を保存します。
-
Writeレジスタ一覧に追加されます。
※入力項目を変更して、「新規」をクリックする事で連続登録できます書込みレジスタで設定されているイベントやコレクタのデータが、削除または変更された場合、対象となる書込みレジスタが自動削除されることがあります。
-
更新
変更するレジスタを選択します。
-
変更する項目を入力し、「更新」をクリックします。(入力項目は新規レジスタと同様です)
-
削除
レジスタ一覧の右にあるチェックボックスをONにし、「削除」をクリックします。
1.5.2.6 PLC接続テスト#
設定したPLCの接続テストを行います。
-
対象となるPLCを選択して、「Test」をクリックします。
-
テスト結果が表示されます。
補足
- 対象のPLCのポート番号をサービスやアプリケーションで利用されている場合、エラーになる可能性があります。エラーが発生した場合、Hiveサービスを停止してから再度、試してみてください。
- エラー内容に従い、レジスタ設定を修正してください。
1.5.2.7 PLC設定の出力、取込#
設定したPLC情報をJSONファイルに出力、および新規作成時に出力されたファイルを基に、PLC定義を設定できます。
-
出力
対象となるPLCを選択して、「出力」をクリックします。
※定義ファイル(JSON)がダウンロードされます。 -
取込
PLC行のをクリックします。
-
「取込」 をクリックし、PC上にある定義ファイル(JSON)を選択します。
-
定義ファイルのPLC情報を基にPLCが新規登録されます。
1.5.3 カスタムコレクタ#
ユーザーが定義したコレクタに基づいて情報収集をします。
事前にカスタムモジュールパス に指定したディレクトリに、カスタムコレクタ(シェアードライブラリ)を配置してください。
ここではサンプルライブラリ「cltrrandomsin.so」(Windows版では「cltrrandomsin.dll」)を使って説明します。
1.5.3.1 カスタムコレクタ設定#
-
カスタムの
をクリックすると登録画面が表示されます。
-
下記の項目を入力します。
入力項目 説明 カスタム名 データを収集するコレクタ名
コレクタ全体で重複不可タイプ シェアードライブラリのタイプを選択
Linuxでは「so」固定、Windowsでは「dll」固定
保存後は変更不可ライブラリ カスタムモジュールパスに配置したシェアードライブラリを選択
保存後は変更不可パラメータ ライブラリ内で利用される引数(文字列)
cltrrandomsin.soでは入力の必要は不要 -
「保存」をクリックし、設定を保存します。
1.5.3.2 カスタムコレクタの参照・更新・削除#
- サブメニューから参照するカスタムコレクタをクリックし参照します。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
データを削除したい場合は、「削除」をクリックし、設定を削除します。カスタムコレクタを削除するとデータで設定した収集項目がなくなります。
エミッタにて、そのデータ項目を利用している場合、自動削除されます。
1.5.3.3 データの初期化#
-
「初期化」をクリックしてください。
初期化するとデータで編集した収集項目が元に戻ります。
エミッタにて、そのデータ項目を利用している場合、自動削除されます。
1.5.3.4 データの編集#
-
「編集」をクリックします。
-
データ一覧から編集するデータを選択します。
-
下記の項目を変更して、「更新」をクリックします。
入力項目 説明 データ名 データ名称(カスタム内で重複しない名称) データ型 取得するデータ型 配列数 取得する配列数 サンプルレート 1秒間に取得する値の数 永続化する ストレージ上に保存する リアルタイム分析を使用する リアルタイム分析を利用する。
チェック時には基本統計、移動分析値、FFTを編集可能
※FFT解析はサンプルレートが1以上の時のみ設定できます
※各項目の詳細は 「補足」 をご参照くださいデータ型、配列数、サンプルレートは変更できません。
1.6 コレクタの共通機能#
一部のコレクタでは、「数値変換」、「登録条件」の機能を使用できます。
コレクタ名 | 数値変換 | 登録条件 |
---|---|---|
PLCコレクタ | 使用可能 | 使用可能 |
カスタムコレクタ | 使用可能 | 使用可能 |
RFIDコレクタ | 使用可能 | 使用可能 |
センサータグコレクタ(RFID,EnOcean) | 使用可能 | 使用可能 |
演算コレクタ | 使用不可 | 使用可能 |
作業検出RFIDコレクタ | 使用可能 | 使用可能 |
Edgecross RT Receiver | 使用可能 | 使用可能 |
Edgecross RT Receiverは、Windows,Ubuntu20,Raspberry Pi bullseyeのみサポートしています。
1.6.1 数値変換#
数値変換は、コレクタが取得したデータに対して四則演算や様々な関数処理を施し、計算した結果をデータとして保存する機能です。コレクタのデータ一覧編集画面にて、そのコレクタが集めるデータ各々に対して数値変換の数式を設定できます。
下記の項目を入力します。
入力項目 | 説明 |
---|---|
数値変換チェックボックス | 数値変換の実行有無を指定します |
変換後の型 | この数値変換により、変換された数値をデータベースに登録する際のデータ型を指定します。「Unconvert」の場合、データ型は変更されず、元のデータと同じ型になります。 |
変換式 | 登録時に処理したい変換式を指定します。 設定例) 3 * $VALUE + 0.25 取得した値を3倍し、0.25を足した値をデータベースに登録 ($VALUE / 255.0) * 200.0 – 100.0 取得した0~255の範囲の値を-100~+100に変換 |
変換式について
- コレクタが取得した値は「$VALUE」という変数として参照できます。
- 使用可能な算術演算子や関数については「トリガの登録」の「条件式について」を参照してください。
- グローバル変数機能については「グローバル変数機能」を参照してください。
- 変換式の説明は、入力欄の右隣にある「!」ボタンをクリックすることで、Web画面上から参照可能です。
1.6.2 登録条件#
登録条件は、コレクタが取得したデータに対して四則演算や様々な関数を使った比較式を施し、その比較結果が「真」となる場合のみ、データベースに登録する機能です。比較結果が「偽」の場合は、そのデータは取得しなかったものとして破棄されます。
下記の項目を入力します。
入力項目 | 説明 |
---|---|
登録条件チェックボックス | 登録条件機能の実行有無を指定します |
登録条件 | DBに登録するデータの条件式を指定します。 設定例) $VALUE > 0 取得した値0より大きい場合にのみデータベースに登録する $VALUE >= $PVALUE 取得した値が前回登録された値以上の場合にのみデータベースに登録する |
条件式について
- コレクタが取得した値は「$VALUE」という変数として参照できます。また、前回登録された値も「$PVALUE」という変数として参照できます。
- 使用可能な算術演算子や関数については「トリガの登録」の「条件式について」を参照してください。
- グローバル変数機能については「グローバル変数機能」を参照してください。
- 条件式の説明は、入力欄の右隣にある「!」ボタンをクリックすることで、Web画面上から参照可能です。
1.7 イベント#
イベントの設定の参照/登録/更新を行います。
トリガ、イベント、コマンドの順で設定します。
1.7.1 トリガ設定#
イベントのトリガを設定します。
1.7.1.1 トリガの登録#
-
トリガの
をクリックします。
-
下記の項目を設定します。
入力項目 説明 トリガ名 イベント項目設定で表示される名称 コレクタ トリガにするデータを収集しているコレクタ、設定後は変更不可 データ トリガ条件にするデータ、設定後は変更不可 条件種別 条件式に対しての種別
・True : 条件式が真なら発生
・False : 条件式が偽なら発生
・Fall : 条件式が真→偽の際に発生
・Raise : 条件式が偽→真の際に発生
・Anytime : 値の登録時に発生条件式 条件となる式
※条件種別がAnytimeの場合入力不可 -
「保存」をクリックし、トリガ設定を保存します。
条件式について#
- 使用可能な比較演算子は「 = , <> , != , < , > , <= , >= 」です。
- 使用可能なその他の演算子は「 () , + . - , * , / , % 」です。
- 式で利用可能な関数は以下の通りです。
関数名 説明 ABS 絶対値 (整数) ACOS 三角関数 逆余弦 ASIN 三角関数 逆正弦 ATAN 三角関数 逆正接 CEIL 小数点以下切り上げ COS 三角関数 余弦 COSH 双曲線余弦 EXP 底がネイピア数 e である指数関数 FABS 絶対値 (倍精度浮動小数) FLOOR 小数点以下切り捨て FMOD 剰余 LOG 自然対数 LOG10 10を底とする対数 POW べき乗 ROUND 小数点以下四捨五入 SIN 三角関数 正弦 SINH 双曲線正弦 SQRT 平方根 TAN 三角関数 正接 TANH 双曲線正接 - グローバル変数機能については「グローバル変数機能」を参照してください。
1.7.1.2 トリガの参照・更新・削除#
トリガの参照/更新/削除を行います。
- サブメニューから参照するトリガをクリックします。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
データを削除したい場合は、「削除」をクリックし、設定を削除します。トリガを削除すると、イベント設定から該当のトリガは自動削除されます。
1.7.2 イベント設定#
作成したトリガを元にイベントを作成します。
1.7.2.1 イベントの登録#
-
イベントの
をクリックします。
-
以下の項目を入力します。
入力項目 説明 ID イベントID (設定不可) イベント名 後述のコマンドやエミッタの設定時に表示される名称 最小通知間隔(秒) 連続してイベントが発生した場合において、次のイベントを通知するまでの最小通知間隔(1~600) 無効にする イベント利用の有無 トリガ選択 利用するトリガを選択
※複数選択時はOR条件となります -
「保存」をクリックし、イベント設定を保存します。
1.7.2.2 イベントの参照・更新・削除#
イベントの参照/更新/削除を行います。
- サブメニューから参照(または、更新、削除)するイベントをクリックします。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
データを削除したい場合は、「削除」をクリックし、設定を削除します。コレクタまたは、エミッタで利用されている場合は削除できません。
1.7.3 コマンド設定#
イベント発生時に実行する外部コマンドの設定を行います。
1.7.3.1 コマンド登録#
-
サブメニューからコマンドをクリックします。
-
以下の項目をします。
入力項目 説明 コマンド 「イベント」で設定したイベントの発生時に実行されるコマンド イベント 実行イベントを選択 BG コマンドをバックグラウンドで実行するか選択 -
「更新」をクリックし、コマンド設定を保存します。
コマンドで利用可能な環境変数について、下表をご参照ください。
変数名 説明 $HIVE_EVENT_COLTYPE カラムの型 $HIVE_EVENT_COLARRAYSIZE カラムの配列要素数(スカラの場合は0) $HIVE_EVENT_CID DBのカラムID $HIVE_EVENT_COLNAME カラム名
※ 環境変数展開後の文字列にスペースが含まれる可能性があります$HIVE_EVENT_COLDATA トリガ発生した時点の登録データ
※ 環境変数展開後の文字列にスペースが含まれる可能性があります$HIVE_EVENT_TRIGGER_ID トリガID $HIVE_EVENT_TRIGGER_COND トリガの条件式
(type=anytimeの場合は空文字)
※ 環境変数展開後の文字列にスペースが含まれる可能性があります$HIVE_EVENT_TRIGGER_TYPE トリガの判定種別
(false/true/fall/raise/anytime)$HIVE_EVENT_EVENT_ID イベントID $HIVE_EVENT_EVENT_NAME イベント名
※ 環境変数展開後の文字列にスペースが含まれる可能性があります$HIVE_EVENT_EVENT_LEVEL イベントレベル $HIVE_EVENT_TIMESTAMP_NSEC トリガ発生したデータのタイムスタンプ
(Unixエポックのナノ秒単位の数値)$HIVE_EVENT_TIMESTAMP トリガ発生したデータのタイムスタンプ
(iso8601形式msecまで)
Windows版における注意事項
- コマンドでPythonを利用したい場合、環境変数を指定する必要があります。
SET SYSTEMROOT=C:\WINDOWS& C:\"Program Files"\SALTYSTER\SpeeDBeeHive\python3\python.exe 任意のPythonスクリプト
- 上記で指定するSYSTEMROOTの値はコマンドプロンプトで確認可能です。下記の例では「C:\WINDOWS」となります。
echo %SYSTEMROOT% C:\WINDOWS
1.7.3.2 コマンド変更・削除#
コマンド、イベント、BGを変更して「更新」をクリックします。
1.8 エミッタ#
エミッタの設定を行います。
1.8.1 出力先設定#
エミッタの出力先を設定します。定義された出力先は、各エミッタで選択可能になります。
提供するエミッタの出力タイプは下記の通りです。
出力タイプ | 説明 |
---|---|
AWS | AWSのIoT Coreへ接続 |
Azure | Azure IoT Hubへ接続 |
MQTT | MQTTブローカーに接続(TLS接続のみ) |
FILE | ローカルディスクへ出力 |
FTP/FTPS | FTP/FTPSでファイルを送信 |
SFTP | SFTPでファイルを送信 |
Machine Advisor | Machine Advisorへ接続 |
SensorCorpus | SensorCorpusへ接続 |
Custom(Python) | ユーザーがPythonで開発したエミッタを使用 |
1.8.1.1 登録#
-
出力先の
をクリックします。
-
下記の項目を入力します。(入力項目はタイプにより異なります)
-
全タイプ共通
入力項目 説明 タイプ AWS/Azure/MQTT/File/ FTP/FTPS/Machine Advisor/SensorCorpus/Custom(Python) 出力先名 表示名称 -
AWS/Azure/MQTT共通
入力項目 説明 タイムゾーン メッセージ内のタイムスタンプ(文字列)やファイル名の時間に適用するタイムゾーン リトライ回数 送信失敗時のリトライ件数(1~10) タイムアウト(ミリ秒) 送信時のタイムアウト時間 (500~5000) 最大メッセージサイズ(Byte) 1メッセージの最大サイズ(96KB固定) 最大メッセージ送信回数 1回のイベントでの送信最大回数 (1~1000) MQTT QoS Quality of Service -
AWS
入力項目 説明 ホスト 接続先ホスト ポート 接続先ポート番号 -
Azure
入力項目 説明 接続文字列 接続用文字列 -
MQTT
入力項目 説明 ホスト 接続先ホスト ポート 接続先ポート番号 ユーザー名 接続ユーザー(ブローカー設定により省略可) パスワード 接続パスワード(ブローカー設定により省略可) -
File/FTP/FTPS/SFTP共通
入力項目 説明 タイムゾーン メッセージ内のタイムスタンプ(文字列)やファイル名の時間に適用するタイムゾーン 出力先ディレクトリ ルートフォルダからの保存ディレクトリ 切替基準 ファイル分割する単位(時間/件数) 切替時間(件数) 切り替える時間/件数 (時間:1~3600、件数:1~10000) 形式 CSV/JSON 区切り文字 CSV形式時の区切り文字(カンマ/タブ) 改行コード CSV形式時の改行コード(LF/CRLF) BOMと付ける CSV形式時のファイルBOM有無 ヘッダを付ける CSV形式時のヘッダ有無 -
FILE
入力項目 説明 保存期間(時間) ディスク上に存在する期間 -
FTP/FTPS/SFTP共通
入力項目 説明 ホスト 接続先ホスト ポート 接続先ポート番号 ユーザー名 接続ユーザー(匿名アクセス時は省略) パスワード 接続パスワード(匿名アクセス時は省略) -
FTP/FTPS
入力項目 説明 暗号化 通信時のプロトコル(FTP/FTPS) 匿名アクセス 匿名FTPの利用有無 -
SFTP
入力項目 説明 公開鍵認証を使う 通信時のプロトコル(SFTP) -
Machine Advisor
入力項目 説明 サーバー 接続用サーバー トークン 接続用トークン -
SensorCorpus
入力項目 説明 ホスト 接続用ホスト セッションコード 接続用セッションコード -
カスタム
入力項目 説明 スクリプト名 Pythonカスタムエミッタのスクリプト名 パラメータ Pythonカスタムエミッタに渡す任意のパラメーター
-
補足
-
ファイル出力時のディレクトは下記の階層で出力されます。
[出力先ディレクトリ] ⊞ [各エミッタのクライアントID] ⊞ [日時ディレクトリ] ⊞ CSV(JSON)ファイル群
-
FTP/FTPS/SFTP出力時のディレクトは下記の階層で出力されます。
[ルートディレクトリ] ⊞ [各エミッタのクライアントID] ⊞ [出力先ディレクトリ] ⊞ CSV(JSON)ファイル群
なお、存在しないディレクトリを指定した場合は作成されます。
FTP/FTPS/SFTPの出力先ディレクトには以下の変数が利用できます。
変数 | 説明 |
---|---|
%Y | 4桁の年 |
%m | 2桁の月(01~12) |
%d | 2桁の日(01~31) |
%H | 2桁の時(00~23) |
%M | 2桁の分(00~59) |
%S | 2桁の秒(00~59) |
-
「保存」をクリックし設定を登録します。
-
接続用の証明書ファイルを指定して「保存」をクリックします。
出力タイプ ファイル AWS CA証明書 SSL証明書 秘密鍵 MQTT CA証明書 SFTP 秘密鍵 -
「Test」をクリックし接続テストを行います。
各接続先の具体的な設定方法は、別紙「SpeeDBee Hive(エミッタ接続設定)」をご参照ください。
1.8.1.2 参照・更新・削除#
出力先設定を参照/更新します。
-
対象の出力先をクリックし、設定を参照します。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
(設定内容は登録時と同じですが、タイプは変更できません)
データを削除したい場合は、「削除」をクリックし、設定を削除します。
1.8.1.3 出力先設定の出力・取込#
前節で設定を行った出力先設定を、1つの出力先毎に1つのファイルとして出力することができます。また、そのファイルを取り込むことで新しい出力先設定を新規に登録することもできます。
-
出力
- 対象となる出力先を選択し、「出力」をクリックします
- 表示されたダイアログで「含まない」もしくは「含む」を選択します
-
出力されたファイルはPCの「ダウンロード」フォルダにダウンロードされます
ダイアログで「含む」を選択した場合、出力先情報におけるパスワードや秘密鍵なども1つのファイルにまとめて取り込まれます。これらの情報は流出するとセキュリティ上の問題となりますので、取り扱いには十分ご注意ください。
-
取込
-
出力先行の
をクリックします。
-
「取込」をクリックし、ファイル選択ダイアログで出力先の設定ファイルを選択します。
-
設定ファイルをもとに新しく出力先が新規作成されます。
設定ファイルの出力時に、パスワードや秘密鍵などの情報を「含まない」を選択していた場合、その設定ファイルを取り込んだだけでは出力先を完全な状態で復元することはできません。出力先タイプに応じて、パスワードや接続情報、秘密鍵等の再設定を行ってください。
-
1.8.2 エミッタ設定#
エミッタの設定をします。
1.8.2.1 エミッタの登録#
-
送信データの
をクリックします。
-
下記の項目を入力します。
入力項目 説明 エミッタ名 エミッタ表示名称 クライアントID エミッタ識別ID 出力先 出力先で定義した内容を選択 送信先 送信先名(TOPIC)(出力先により省略可) 無効にする エミッタを無効にする(設定のみ行う場合に利用) 常時接続する サーバー接続を送信の都度、切断しない -
送信間隔の項目を入力します。
入力項目 説明 送信タイミング 周期/リアルタイム/イベントを選択 デフォルト小数桁数 データが浮動小数の場合の送信する桁数を設定
各データに小数桁数が指定していない場合のデフォルト値として利用する通算ナノ時間付で出力 データに通算ナノ秒を追加する 起動後は前回送信したデータの続きからデータを出力 起動後は前回送信したデータの続きからデータを出力する ※送信タイミングが周期/イベントの場合、以下の値を追加で入力します。
-
周期
入力項目 説明 間隔(秒) 送信間隔 -
イベント
入力項目 説明 開始イベント 送信開始イベント、イベントで定義した内容から選択 終了イベント 送信終了イベント、イベントで定義した内容から選択
※開始イベントと同じものは設定できませんイベント前(秒) イベント発生前の記録時間 イベント後(秒) イベント発生後の記録時間 最大(秒) 最大記録時間
※イベント前 + イベント後より小さい値は設定できません
- 全体の記録時間は、下記の図を参照してください。
-
開始イベントのみ指定
-
開始、終了イベント指定
-
全体の記録時間が最大記録時間を超過した場合、強制的に記録は終了します。
-
-
送信データの項目を入力します。
入力項目 説明 一定間隔で集計したデータを送信する 指定された時間幅でデータを集計し、その各時間幅内の代表値を送信する。
通常は各時間幅で同じデータに複数の値がある場合、最新のデータが代表値となりますが、各データにて集約オプションを有効にした場合、その時間幅内で集約計算が行われ、その計算結果が送信されます。 -
「一定間隔で集計したデータを送信する」をONにした場合、下記の項目を入力します。
入力項目 説明 集計間隔(秒) 集計する時間幅 前回値を送信する 集計区間にデータが存在しない場合、一つ前の集計区間で送信した値を送信する nullを送信する 集計区間にデータが存在しない場合、nullを送信する -
集計区間に各データが存在しない場合の挙動
前回値を送信 nullを送信 集計区間にデータが存在しない場合の送信データ ○ ○ 一つ前の集計区間で送信した値があればその値を再度送信します。なければnullを送信します。 ○ ✕ 一つ前の集計区間で送信したデータがあればその値を再度送信します。なければそのデータは送信しません。 ✕ ○ nullを送信します。 ✕ ✕ そのデータは送信しません。
-
-
「保存」をクリックし登録します。
1.8.2.2 エミッタの参照、更新、削除#
エミッタの設定を参照、更新、削除します。
-
対象の出力先をクリックし、設定を参照します。
-
変更項目を入力後、「保存」をクリックし、設定を更新します。
データを削除したい場合は、「削除」をクリックし、設定を削除します。
1.8.2.3 データ定義の編集#
エミッタのデータ定義を編集します。
(エミッタ新規登録時は、保存しないと編集できません)
-
「編集」をクリックします。
-
新規
-
下記の項目を入力後、「新規」をクリックし設定を登録します。
入力項目 説明 コレクタ コレクタ定義で設定した名称 データ コレクタ定義でデータ名称 送信スキーマ名 データ名称(省略可) 小数桁数 浮動小数時の有効桁数(省略可) 基本統計 「分析データを送信する」時のみ設定する 補足
- 送信スキーマ名を省略した場合、データ名は”コレクタ名:レジスタ名” で送信されます。
-
リアルタイム分析を行っているレジスタの場合、レジスタ選択項目で。“レジスタ名:基本統計名称”で表示されます。
(データに付与される基本統計名称)件数→count, 総和→sum, 2乗和→sumsq, 偏差平方和→sumsqd, 最小→min, 最大→max, 範囲→range, 算術平均値→mean, 分散→var, 標準偏差→stdev, 不偏分散→uvar, 標本不偏標準偏差→ustdev, 標準誤差→stder, 変動係数→cv
-
エミッタで基本統計分析を行うとデータ名(または送信スキーマ名)の末尾に”.基本統計名称”が付与されたデータ名として送信されます。
設定例 内容 1 PLC:A、レジスタ:B、エミッタで最大を選択した場合
→ データ名称「A:B.max」2 PLC:A、レジスタ:B(リアルタイム分析:最大)、エミッタで最小を選択
→ データ名称「A:B:max.min」3 PLC:A、レジスタ:B(リアルタイム分析:最大)、エミッタで別名:C、
エミッタで最小を選択
→ データ名称「C.min」
-
-
更新
- 変更対象のデータをクリックします。
-
項目を入力後、「更新」をクリックし設定を更新します。
-
削除
- 削除対象のデータのチェックボックスをONにします。
-
「削除」をクリックし設定を削除します。
1.8.2.4 出力したファイルのダウンロード#
エミッタ出力されたcsvまたはjsonファイルをダウンロードします。
-
ファイルダウンロード欄の表示
-
エミッタ出力されるファイルをダウンロードするために、タイプが「File(Local)」の出力先を設定します。
-
上記で作成した、タイプが「File(Local)」の出力先を選択して、エミッタを登録します。
-
ファイルダウンロード欄が表示されます。
-
-
ファイルのダウンロード
出力先ディレクトリのcsvファイル(またはjsonファイル)をzip形式でダウンロードします。-
時間範囲を指定します。
-
ダウンロードボタンをクリックし、zipファイルをダウンロードします。
- zipファイルの名前は以下の形式となります。
「<エミッタのクライアントID>_<年月><日><開始時間>-<年月><日><終了時間>.zip」 - ※zipファイルの中に、①で指定した時間範囲に出力されたcsvファイル(またはjsonファイル)が、年月/時/分の階層でフォルダに格納されています。
- zipファイルの名前は以下の形式となります。
-
-
出力されるzipファイルのフォルダ構造の例
時間範囲に「2021年4月18日6時-18時」を指定して、csvファイルをダウンロードした場合の、zipファイルのフォルダ構造を以下に示します。
※以下は、実際に出力したzipファイルを展開し、フォルダ構造をtreeコマンドで示したものです。()内はフォルダ名の説明です。
※また、本項目の説明は、jsonファイルをダウンロードした場合にも当てはまります。C:\CLIANT-A_2021041806-2021041818 └─202104(年月) └─18(日) ├─06(時間) │ ├─56(分) │ │ client-a_20210418065605.csv │ │ client-a_20210418065625.csv │ │ client-a_20210418065645.csv │ │ │ ├─57(分) │ │ client-a_20210418065705.csv │ │ client-a_20210418065725.csv │ │ client-a_20210418065745.csv │ │ │ ├─58(分) │ │ client-a_20210418065805.csv │ │ client-a_20210418065825.csv │ │ client-a_20210418065845.csv ・・・
1.8.2.5 エミッタ(送信データ)設定の出力・取込#
前節で設定を行ったエミッタ(送信データ)設定を、1つのファイルとして出力することができます。また、そのファイルを取り込むことで新しいエミッタ(送信データ)設定を新規に登録することもできます。
-
出力
-
対象となるエミッタ設定を選択して「出力」をクリックします。
-
表示されたダイアログで「含まない」もしくは「含む」を選択します。
-
出力されたファイルはPCの「ダウンロード」フォルダにダウンロードされます。
-
-
取込
-
送信データ行の
をクリックします。
-
「取込」をクリックし、ファイル選択ダイアログでエミッタ(送信データ)設定ファイルを選択します。
-
設定ファイルをもとに新しく出力先設定とエミッタ(送信データ)設定が新規作成されます。
-
設定ファイルの出力時に、パスワードや秘密鍵などの情報を「含まない」を選択していた場合、その設定ファイルを取り込んだだけでは出力先を完全な状態で復元することはできません。出力先タイプに応じて、パスワードや接続情報、秘密鍵等の再設定を行ってください。
1.9 グローバル変数機能#
1.9.1 機能概要#
グローバル変数機能は、頻繁に変化するデータをメモリ上の変数へ格納する機能です。この変数をSpeeDBee Hive の各種機能(数値変換、登録条件、トリガの条件式など)で利用できます。 これにより、システム稼働中の条件式閾値の更新や特定のデータ値による他データ登録のフィルタリングなどが可能となります。
1.9.1.1 構文#
グローバル変数には2種類の指定方法が存在します。 どちらも64個の変数を使用できます。永続化グローバル変数は、SpeeDBee Hiveを停止しても 次の起動時に最終値が参照できます。通常のグローバル変数は、SpeeDBee Hiveを停止すると値は失われます。
-
$GVAR0 ~ $GVAR63(グローバル変数)
GVAR(グローバル変数)はSpeeDBee Hiveを起動する毎に0で初期化されます。値の代入が行われるまで0のままとなります。
-
$PVAR0 ~ $PVAR63(永続化グローバル変数)
PVAR(永続化グローバル変数)はSpeeDBee Hiveを初めて起動する時に0で初期化されます。値の代入が行われると、次回起動時も値を保持します。
SpeeDBee Hiveの再起動時に、前回起動時に代入された値を使用したい場合は永続化グローバル変数を使用してください。
-
代入方法
GVAR0 := $VALUE
※代入するグローバル変数の先頭には「$」は必要ありません。PVAR15 := ($VALUE * 20)
-
数値変換における代入時の注意点
上記のように代入を指定すると、登録される値は$VALUEに2を乗算した値となります。 登録される値が変化することに注意してください。 元の値を変えたくない場合、演算は参照側で行うことを推奨します。PVAR0 := $VALUE * 2
-
条件式における代入時の注意点
条件式では、代入のみを指定することはできません。条件式内で、代入したい場合は 以下のように条件式としての指定が必要です。GVAR0 := $VALUE
この場合、$VALUEが0より大きい場合条件成立となります。GVAR0への代入は常に行われます。0 < (GVAR0 := $VALUE)
-
-
参照方法
$GVAR0 < $VALUE
※参照するグローバル変数の先頭には「$」を付けます。$PVAR15 > ($VALUE + 20)
1.9.2 設定例#
グローバル変数の具体的な設定例を紹介します。
1.9.2.1 コレクタの登録値よりトリガの条件を稼働時にリアルタイムに変化させる例#
-
カスタムコレクタaのデータ1をグローバル変数GVAR0に代入
-
カスタムコレクタで「hello.py」を使って「カスタムコレクタa」を登録
-
編集から「data1」の数値変換へ代入文を設定 (※この設定では、グローバル変数への代入とデータ登録を同時に処理します。)
-
-
グローバル変数GVAR0が偶数だった場合にOSコマンドを実行する
-
トリガへ条件式を設定
-
登録した条件指定したイベントを設定
-
条件成立時のOSコマンドを設定(Windows版を使用)
echo %HIVE_EVENT_COLDATA% >> C:\ProgramData\SALTYSTER\event.txt
-
処理結果
SpeeDBee Hiveを起動すると、以下のように条件成立時の偶数値のみがテキストファイル(event.txt)へ出力されます。
0 4 14 28
-
1.9.2.2 コレクタの特定のデータの値により他のカラムへの登録を抑制する例#
-
PLCコレクタAのアドレスM100をグローバル変数PVAR10に代入
- 数値変換で代入文を設定
PVAR10 := $VALUE
- 数値変換で代入文を設定
-
グローバル変数PVAR10が1だった場合に、PLCコレクタAのアドレスD100の値を登録する
- 登録条件で条件式を設定
$PVAR10 = 1
- 登録条件で条件式を設定
-
グローバル変数PVAR10が1だった場合に、PLCコレクタAのアドレスD100の値を登録する
- 処理結果
M100が0の場合は、D100の値が登録されません。
M100が1の場合のみ、D100の値が登録されます。
PLC側でレジスタの値を制御することで、SpeeDBee Hiveのデータ登録タイミングを制御できます。
1.10 補足#
1.10.1 制限事項#
制限事項 | 制限内容 |
---|---|
PLCの最大個数 | 8 |
1PLCにおける最大レジスタ数 | 100 |
エミッタの最大数 | 8 |
1エミッタにおける最大データ定義数 | 850 |
PLC対応プロトコル | 三菱MCスクリプト(1e,3e) |
OMRON(fins) | |
キーエンス(上位リンク) | |
JTEKT(コンピュータリンク) | |
Modbus RTU/TCP |
1.10.1.1 エミッタの送信メッセージ書式#
エミッタは送信するデータをJSON形式に変換し、指定された送信先に送信します。送信するJSON書式には、「実データを送信する」と「分析データを送信する」の2種類があります。
1.10.1.2 実データを指定した場合#
各データにおいてタイムスタンプが異なるため、レジスタの値+タイムスタンプ(ISO8601書式の文字列)を一つのデータセットとして構成して、records配列に格納し送信します。
{
"records": [
{
"timestamp": "2020-10-06T11:22:50.178616824Z"
"PLC1:REG1": 1409
},
{
"timestamp": "2020-10-06T11:22:50.178616824Z"
"PLC1:REG2": 200
},
(省略)
]
}
PLC1:PLC名
REG1:レジスタ名
※データ定義において別名が指定された場合は、PPP:RRR→別名に変更される
1.10.1.3 分析データを指定した場合#
複数のデータに対し、指定された時間幅で代表値を決定し、一つのタイムスタンプの複数のレジスタ値を格納する。(統計値などを含める事も可能)
{
"records": [
{
"datetime": "2020-10-06T11:22:50.178616824Z",
"PLC1:REG1": 1409,
"PLC1:REG2": 20.1,
"PLC2:REG1.max": 100
},
(省略)
]
}
複数のデータを一つのデータセットにする
1.10.2 各メーカー(プロトコル)別の注意事項#
各PLC本体のTCP/IP設定は、各メーカーが提供するマニュアルをご参照ください。
1.10.2.1 三菱シーケンサー(MCプロトコル)#
- A互換1EフレームとQnA互換3Eフレームをサポートします。
- ワードレジスタは".0~f"でビット指定可能です。
- 下記のレジスタを指定する事ができます。(シリーズにより異なる事があります)
- 機種によって、アドレスの範囲は下表と異なる場合があります。
【QnA互換3Eフレーム】
種別 | デバイス名 | アドレス |
---|---|---|
ビット | 入力 | X0000~1FFF |
出力 | Y0000~1FFF | |
内部リレー | M0000~8191 | |
ラッチリレー | L0000~8191 | |
アナンシェータ | F0000~2047 | |
エッジリレー | V0000~2047 | |
リンクリレー | B0000~1FFF | |
リンク特殊リレー | SB000~7FF | |
タイマ(接点) | TS0000~2047 | |
タイマ(コイル) | TC0000~2047 | |
カウンタ(接点) | CS0000~1023 | |
カウンタ(コイル) | CC0000~1023 | |
積算タイマ(接点) | STS000~511 | |
積算タイマ(コイル) | STC000~511 | |
特殊リレー | SM0000~2047 | |
ダイレクトアクセス入力 | DX0000~1FFF | |
ダイレクトアクセス出力 | DY0000~1FFF | |
ワード | データレジスタ | D0000~6143 |
D9000~9255 | ||
タイマ(現在値) | TN0000~2047 | |
カウンタ(現在値) | CN0000~1023 | |
積算タイマ(現在値) | STN000~511 | |
リンクレジスタ | W0000~1FFF | |
リンク特殊レジスタ | SW000~7FF | |
特殊レジスタ | SD000~2047 | |
ファイルレジスタ | R0000~2FFF | |
ZR00000~2FFFF | ||
インデックスレジスタ | Z0~9 |
【QnA互換1Eフレーム】
種別 | デバイス名 | アドレス |
---|---|---|
ビット | 入力 | X000~7FF |
出力 | Y000~7FF | |
内部リレー | M0000~8191 | |
ラッチリレー | L0000~8191 | |
アナンシェータ | F0000~2047 | |
ステップリレー | S000~512 | |
リンクリレー | B000~FFF | |
タイマ(接点) | TS0000~2047 | |
タイマ(コイル) | TC0000~2047 | |
カウンタ(接点) | CS0000~1023 | |
カウンタ(コイル) | CC0000~1023 | |
ワード | データレジスタ | D0000~6143 |
D9000~9255 | ||
リンクレジスタ | W000~FFF | |
タイマ(現在値) | TN0000~2047 | |
カウンタ(現在値) | CN0000~1023 | |
ファイルレジスタ | R0000~2FFF |
1.10.2.2 TOYOPUC(コンピュータリンク)#
- 短いサイクルで接続/切断を行うとレスポンスが取得できない事があります。そのため、PLC接続は常時接続のみとなります。
- ワードレジスタは".0~f"でビット指定可能です。
- プログラム番号(1~3、共通)を指定可能です。(現在、Plus/PC10G/PC3Jのみ可能)
- 下記のレジスタを指定する事ができます。
【Nano】
領域 | 識別子 | 名称 | アドレス |
---|---|---|---|
ビット | K | キープリレー | K000-2FF |
V | 特殊リレー | V000-0FF | |
T/C | タイマ/カウンタ | T,C000-1FF | |
L | リンクリレー | L000-7FF | |
X/Y | 入出力リレー | X,Y000-7FF | |
M | 内部リレー | M000-7FF | |
ワード | S | 特殊レジスタ | S0000-03FF |
N | タイマ/カウンタ現在値 | N0000-01FF | |
R | リンクレジスタ | R0000-07FF | |
D | データレジスタ | D0000-2FFF | |
B | ファイルレジスタ | B0000-1FFF |
【PC3J】
領域 | 識別子 | 名称 | アドレス |
---|---|---|---|
ビット | K | キープリレー | K000-2FF |
V | 特殊リレー | V000-0FF | |
T/C | タイマ/カウンタ | T,C000-1FF | |
L | リンクリレー | L000-7FF | |
P ※1 | エッジ検出 | P0-1FF | |
X/Y | 入出力リレー | X,Y000-7FF | |
M | 内部リレー | M000-7FF | |
EK | 拡張キープリレー | EK000-FFF | |
EV | 拡張特殊リレー | EV000-FFF | |
ET/EC | 拡張タイマ/カウンタ | ET,EC000-7FF | |
EL | 拡張リンクリレー | EL000-1FFF | |
EP ※1 | 拡張エッジ検出 | EP0-FFF | |
EX/EY | 拡張入出力 | EX,EY000-7FF | |
EM | 拡張内部リレー | EM000-1FFF | |
ワード | S | 特殊レジスタ | S0000-03FF |
N | タイマ/カウンタ現在値 | N0000-01FF | |
R | リンクレジスタ | R0000-07FF | |
D | データレジスタ | D0000-2FFF | |
B | ファイルレジスタ | B0000-1FFF | |
ES | 拡張特殊レジスタ | ES000-07FF | |
EN | 拡張現在地レジスタ | EN0000-07FF | |
H | 拡張設定値レジスタ | H0000-07FF | |
U | 拡張データレジスタ | U0000-7FFF |
※1:シリアル接続時のみ使用可能
【Plus】
領域 | 識別子 | 名称 | アドレス |
---|---|---|---|
ビット | K | キープリレー | K000-2FF |
V | 特殊リレー | V000-0FF | |
T/C | タイマ/カウンタ | T,C000-1FF | |
L | リンクリレー | L000-7FF | |
X/Y | 入出力リレー | X,Y000-7FF | |
M | 内部リレー | M000-7FF | |
P | エッジ検出 | P000-1FF | |
EX/EY | 拡張入出力 | EX,EY000-7FF | |
EM | 拡張内部リレー | EM000-1FFF | |
EK | 拡張キープリレー | EK000-FFF | |
EV | 拡張特殊リレー | EV000-FFF | |
ET/EC | 拡張タイマ/カウンタ | ET,EC000-7FF | |
EL | 拡張リンクリレー | EL000-1FFF | |
EP | 拡張エッジ検出 | EP000-FFF | |
GX/GY | 拡張入出力 | GX,GY0000-FFFF | |
GM | 拡張内部リレー | GM0000-FFFF | |
ワード | S | 特殊レジスタ | S0000-03FF |
N | 現在値レジスタ | N0000-01FF | |
R | リンクレジスタ | R0000-07FF | |
D | データレジスタ | D0000-0FFF | |
EN | 拡張現在値レジスタ | EN0000-07FF | |
H | 拡張設定値レジスタ | H0000-H07FF | |
ES | 拡張特殊レジスタ | ES0000-ES07FF | |
U | 拡張データレジスタ | U0000-7FFF |
【PC10G】
領域 | 識別子 | 名称 | アドレス |
---|---|---|---|
ビット | K | キープリレー | K000-2FF |
V | 特殊リレー | V000-0FF | |
V | 特殊リレー | V1000-17FF | |
T/C | タイマ/カウンタ | T,C000-1FF | |
T/C | タイマ/カウンタ | T,C1000-17FF | |
L | リンクリレー | L000-7FF | |
L | リンクリレー | L1000-2FFF | |
X/Y | 入出力リレー | X,Y000-7FF | |
M | 内部リレー | M000-7FF | |
M | 内部リレー | M1000-17FF | |
P | エッジ検出 | P000-1FF | |
P | エッジ検出 | P1000-17FF | |
EX/EY | 拡張入出力 | EX,EY000-7FF | |
EM | 拡張内部リレー | EM000-1FFF | |
EK | 拡張キープリレー | EK000-FFF | |
EV | 拡張特殊リレー | EV000-FFF | |
ET/EC | 拡張タイマ/カウンタ | ET,EC000-7FF | |
EL | 拡張リンクリレー | EL000-1FFF | |
EP | 拡張エッジ検出 | EP000-FFF | |
GX/GY | 拡張入出力 | GX,GY0000-FFFF | |
GM | 拡張内部リレー | GM0000-FFFF | |
ワード | S | 特殊レジスタ | S0000-03FF |
S | 特殊レジスタ | S1000-13FF | |
N | 現在値レジスタ | N0000-01FF | |
N | 現在値レジスタ | N1000-17FF | |
R | リンクレジスタ | R0000-07FF | |
D | データレジスタ | D0000-2FFF | |
EN | 拡張現在値レジスタ | EN0000-07FF | |
H | 拡張設定値レジスタ | H0000-H07FF | |
ES | 拡張特殊レジスタ | ES0000-ES07FF | |
U | 拡張データレジスタ | U00000-1FFFF | |
EB | 拡張バッファレジスタ | EB00000-3FFFF | |
FR | 拡張フラッシュレジスタ | FR000000-1FFFFF |
1.10.2.3 OMRON(fins)#
- CS/CJ/CP/NSJシリーズに対応しています。
- チャンネルI/Oは、アドレスのプレフィックスとして"CIO"を付加指定可能です。
- 拡張データメモリの有無は、シリーズおよびマシンごとに異なります。
- 下記のレジスタを指定する事ができます。
エリア種別 | データ種別 | アドレス |
---|---|---|
チャンネルI/O | ビット | 0000.00~6143.15 |
チャンネル(ワード) | 0000~6143 | |
内部補助リレー | ビット | W000.00~W511.15 |
チャンネル | W000~W511 | |
保持リレー | ビット | H000.00~H511.15 |
チャンネル | H000~H511 | |
特殊補助リレー | ビット | A000.00~A959.15 |
チャンネル | A000~A959 | |
タイマ | アップフラグ | T0000~T4095 |
現在値 | T0000~T4095 | |
カウンタ | アップフラグ | C0000~C4095 |
現在値 | C0000~C4095 | |
データメモリ | ビット | D00000.00~D32767.15 |
チャンネル | D00000~D32767 | |
拡張データメモリ(バンク0~F) | ビット | E0_00000.00~E0_32767.15 |
↓ | ||
EF_00000.00~EF_32767.15 | ||
チャンネル | E0_00000~E0_32767 | |
↓ | ||
EF_00000~EF_32767 | ||
拡張データメモリ(バンク10~18) | ビット | E10_00000.00~E10_32767.15 |
↓ | ||
E18_00000.00~E18_32767.15 | ||
チャンネル | E10_00000~E10_32767 | |
↓ | ||
E18_00000~E18_32767 | ||
拡張データメモリ(カレントバンク) | ビット | E00000.00~E32767.15 |
チャンネル | E00000~E32767 | |
タスクフラグ | ビット | TK0000~TK0031 |
ステータス | TK0000~TK0031 |
1.10.2.4 キーエンス(上位リンク)#
- KV-8000/7500/7300シリーズに対応しています。他シリーズもアドレス範囲は異なりますが、上位リンクが利用可能であれば接続できます。
- ワードレジスタは".0~f"でビット指定可能です。
- 下記のレジスタを指定する事ができます。(シリーズにより異なります)
種別 | アドレス | 標準データ | |
---|---|---|---|
リレー | R | 00000~199915 | BIT |
リンクリレー | B | 0000~7FFF | BIT |
内部補助リレー | MR | 00000~399915 | BIT |
ラッチリレー | LR | 00000~99915 | BIT |
コントロールリレー | CR | 0000~7915 | BIT |
ワークリレー | VB | 0000~F9FF | BIT |
データメモリ | DM | 00000~65534 | WORD |
拡張データメモリ | EM | 00000~65534 | WORD |
ファイルレジスタ | FM | 00000~32767 | WORD |
ZF | 00000~524287 | WORD | |
リンクレジスタ | W | 0000~7FFF | WORD |
テンポラリデータメモリ | TM | 000~511 | WORD |
インデックスレジスタ | Z | 01~12 | WORD |
タイマ | T | 0000~3999 | BIT |
タイマ(現在値) | TC | 0000~3999 | DWORD |
タイマ(設定値) | TS | 0000~3999 | DWORD |
カウンタ | C | 0000~3999 | BIT |
カウンタ(現在値) | CC | 0000~3999 | DWORD |
カウンタ(設定値) | CS | 0000~3999 | DWORD |
デジタルトリマ | AT | 0~7 | DWORD |
コントロールメモリ | CM | 0000~5999 | WORD |
ワークメモリ | VM | 00000~50999 | WORD |
1.10.2.5 Modbus RTU/TCP#
- データ種類により、レジスタのデータ型が決定します。
- コイル/入力ステータス → ビット
- 保持レジスタ/入力レジスタ → ワード
- 指定できるアドレス範囲は下記の通りです。
0x0000~0xFFFF(データ種類関係なし)
1.10.2.6 Panasonic MEWTOCOL#
- FP7に対応しています。
- 現時点で対応しているのはMEWTOCOL-COMのみです。MEWTOCOL7-COM, MEWTOCOL-DATには対応していません。
- 下記のデバイスからデータを取得可能です。機種やメモリ選択パターンにより取得可能範囲は異なります。
- 取得単位がBITのものは、型としてBOOLのみ指定可能です。
デバイス名 | 取得単位 | アドレス | 備考 |
---|---|---|---|
外部入力 | BIT | X0000 ~ X511F | 書き込み不可 アドレスの最後の文字は0~9, A~Fを指定 |
WORD | WX000 ~ WX511 | 書き込み不可 | |
外部出力 | BIT | Y0000 ~ Y511F | アドレスの最後の文字は0~9, A~Fを指定 |
WORD | WY000 ~ WY511 | ||
内部リレー | BIT | R00000 ~ R0999F | アドレスの最後の文字は0~9, A~Fを指定 |
BIT | R10000 ~ R2047F | 書き込み不可 アドレスの最後の文字は0~9, A~Fを指定 |
|
WORD | WR0000 ~ WR2047 | ||
リンクリレー | BIT | L00000 ~ L0999F | アドレスの最後の文字は0~9, A~Fを指定 |
BIT | L10000 ~ L1023F | 書き込み不可 アドレスの最後の文字は0~9, A~Fを指定 |
|
WORD | WL0000 ~ WL2047 | ||
データレジスタ | WORD | DT00000 ~ DT99999 | DT100000以降は取得不可 |
リンクデータレジスタ | WORD | LD00000 ~ LD16383 | |
タイマ | BIT | T0000 ~ T4095 | 書き込み不可 |
タイマ設定値 | WORD | TS0000 ~ TS4095 | 32bit中、下位16bitのみ取得 |
タイマ経過値 | WORD | TE0000 ~ TE4095 | 32bit中、下位16bitのみ取得 |
カウンタ | BIT | C0000 ~ C1023 | 書き込み不可 |
カウンタ設定値 | 非対応 | ||
カウンタ経過値 | 非対応 | ||
システムレジスタ | 非対応 | ||
インデックスレジスタ | 非対応 | ||
システムリレー | 非対応 | ||
パルスリレー | 非対応 | ||
異常報知リレー | 非対応 | ||
直接入力 | 非対応 | ||
直接出力 | 非対応 | ||
システムデータ | 非対応 | ||
ユニットメモリ | 非対応 |
1.10.3 リアルタイム分析について#
リアルタイム分析を選択すると「基本統計、移動平均値、FFT」の3種類が設定可能です。
リアルタイム分析に☑を入れ、横にある「基本統計、移動平均値、FFT」をクリックすると設定画面が表示されます。
リアルタイム分析に☑を入れ、横にある「基本統計、移動平均値、FFT」をクリックすると設定画面が表示されます。
1.10.3.1 基本統計#
-
以下の項目を入力します。
項目 説明 分析幅 分析の幅を設定 分析単位 分析幅の単位を設定(件数 or 秒) -
利用する基本統計種別と永続化の有無を選択します。
1.10.3.2 移動平均値#
-
以下の項目を入力します。
項目 説明 移動平均値 移動平均値を取る期間(短期、中期、長期のデータ数)を設定(最大3つまで指定可能)
※左から小さい順に並べてください指数加重移動平均値の平準化定数α 指数加重移動平均値の平準化定数αを設定
0 < α < 1の範囲を小数で指定
デフォルト値:「2 /(2 + 1)」 -
利用する分析、永続化の有無を選択します。
1.10.3.3 FFT解析#
-
以下の項目を入力します。
項目 説明 FFT解析を行う FFT解析を実行の有無 永続化する ストレージ上に保存する 件数 FFTウィンドウの件数 サンプルレート FFTサンプルレート(入力不可) ウィンドウ関数 使用する窓関数を設定 標準化する 標準化の有無
1.10.3.4 ニーモニックファイル出力方法#
-
キーエンス
【KV STUDIO ユーザーズマニュアル】を参照してください。
『参照ページ』
「4章 ファイル・印刷」→
「4-1 ファイルの各機能について」→
「ニモニックリスト保存」に出力方法が記載されています。
手順に従い、MNMファイルを出力してください。 -
OMRON
【CX-Programmer オペレーションマニュアル 】を参照してください。
『参照ページ』
「第5章 プログラムの再利用」→
「5-2 再利用ファイルの保存/読み出し」に出力方法が記載されています。
手順に従い、CXRファイルを出力してください。 -
三菱
【三菱 GX Works】では以下の手順を参考にファイルを作成してください。- GX Worksからプロジェクトを開く
- 画面右側のラダー部を右クリック→メニューに表示されたクロスリファレンスをクリック
- 画面下部のクロスリファレンス部で、すべてのデバイス/ラベルを選んで検索をクリック
- 下部の表形式部へ内容が表示されるので、表形式部の左上クリックで全範囲指定→右クリック→コピーをクリック
- テキストエディタ、またはExcelへペーストしてCSVファイルとして保存
- GX Worksからプロジェクトを開く