LoopEdge FAQ


Q: LoopEdgeにアクセスするには?

 LoopEdgeと同じネットワーク上のブラウザを介して接続して、LoopEdge管理コンソールへアクセスします。ブラウザのURLにIPアドレスを入力します。IPアドレスはLoopEdgeデバイスにディスプレイを接続させることによって確認が可能です。
 (例:https :  //192.168.1.10)


Q: LoopCloudを使わずにLoopEdgeを使用できますか?

 LoopCloudを使わずにLoopEdgeを利用することが可能です。デバイスからデータを収集し、データを視覚化するためにLoopCloudを必ず利用する必要はござません。


Q: LoopEdgeをどうすれば試す事ができますか?

 貸出キットをご用意しておりますので弊社までご連絡ください。
 https://litmus.jig-saw.com/contact/


Q: どのようなデバイスとドライバがサポートされていますか?

 こちらからサポートされているコネクタ、デバイス、およびドライバをご確認ください。


Q: LoopFlowはプログラミング経験なしでも簡単に使えますか?

 プログラミング経験が無い方は最初は難しく感じられると存じます。しかし、ブラウザベースのUIを繋げてフロー(処理の流れ)を作ることができますので、プログラミング初心者の方でも短時間で取得が出来るかと存じます。


Q: LoopEdgeをリモートから操作することは可能ですか?

 リモート操作は提供しておりません。


Q: LoopEdgeがインストールされているOSを操作することはできますか?

 LoopEdgeはOS含めた形で提供しており、OSへの操作は禁止となっております。


Q: LoopEdgeはAndroid OSにインストールすることが可能ですか?

 対応しておりません。


Q: LoopEdgeはWindowsにインストールすることが可能ですか?

 可能ですが、特殊な要件がない限り、LinuxOSでの提供となります。


Q: 仮想環境にLoopEdgeをインストールすることはできますか?

 仮想環境での利用はサポート外となり、提供しておりません。


Q: LoopEdgeとPLCの接続上限はありますか?

 契約するライセンスによって上限は異なります。また、LoopEdgeをインストールするゲートウェイ機器のスペックによって異なります。


Q: ライセンス形態を教えてください。

 弊社営業までご連絡ください。 https://litmus.jig-saw.com/contact/


Q: LoopEdgeを再インストールしたい。手順はどこにありますか?

 弊社サポート窓口までご連絡ください。※ご契約者のみ


Q: LoopEdgeの設定情報をバックアップできますか?

 出来ます。マーケットプレイス上のアプリケーションはバックアップの対象外となりますのでご了承ください。


Q: LoopEdgeへ接続が可能なセンサーを教えてください。

 TCP/IPやUSB、シリアルで接続可能なセンサーでしたら接続可能ですが、センサー独自のソフトウェアが必要なものに関してはLoopEdge上にインストールは出来ませんので、データの変換処理作成が必要な場合や接続ができない場合がございます。


Q: 外部(インターネット)からLoopFlowの処理を実行することが可能ですか?

 LoopCloudを利用して実行させることが可能です。


Q: センサーから取得した値をデータベースに登録したい。どのような方法で出来ますか?

 LoopFlowを使ってデータベースへ値を送信することが可能です。例えばMySQLですと、MySQLのノードを利用して外部(LoopEdge外)のデータベースサーバへ接続することが可能です。


Q: LoopEdgeはどのくらいの周期でPLCから値を取ることが可能ですか?

 秒単位でポーリングを指定することが出来ます。


Q: LoopEdgeは日本語表示できますか?

 現時点では日本語化されておりませんが、今後日本語化の予定はございます。


Q: LoopEdgeからLoopCloudへの通信要件を教えてください。

 LoopEdgeからLoopCloudへ以下の通信が発生ます。
 サービス名:MQTT
 ポート:1883、8883
 送信先:mqtt.litmus.pro


 

機能を追加

LoopFlowは、Node-RED Libraryにあるノードをインストールすることで、機能を追加できます。

LoopFlowの右上メニューから「Manage palette」をクリックしてください。

「search modules」に追加したい機能のノード名を入力します。

検索結果から、追加したいノードの「install」をクリックしてください。

追加したノードがLoopFlowに表示されます。

Datahubノードの使い方

Datahubノードは、DeviceHubで取得したデータの加工、任意のタイミングのPLCからのデータ取得、PLCへの任意のデータの書き込み、DataHubへの任意のデータ送信を行うことができます。

DeviceHubのデータ取得 (生データ)

DataHubのTagにあるRAW Topicを指定します。RAW Topicのコピーアイコンをクリックし、Datahub SubscriptionノードのTopicに貼り付けます。msg.payloadにJSON文字列が渡されます。

DevieHubのデータ取得 (標準フォーマット)

DataHubのTagにあるIPSO Topicを指定します。この形式は、直接LoopCloudに送信可能なフォーマットです。あらかじめOMAの割り当てを行う必要があります。IPSO topicのコピーアイコンをクリックし、Datahub SubscriptionノードのTopicに貼り付けます。msg.payloadにJSON文字列が渡されます。

任意のタイミングのデータ取得実行

DataHubのTagにあるRAW Topicの一部を変更します。rawの部分をpollonceに書き換え、Datahub PublishノードのTopicに貼り付けます。任意の値を渡すとデータ取得が実行されます。

書き換え前

devicehub.raw.XXX.YYY

書き換え後

datahub.pollonce.XXX.YYY

PLCにデータを書き込む方法

書き込み可能なレジスタに限ります。DataHubのTagにあるRAW Topicの一部を変更します。rawの部分をwriteに書き換え、Datahub PublishノードのTopicに貼り付けます。書き込むデータは、JSON文字列をmsg.payloadに渡します。

書き換え前

devicehub.raw.XXX.YYY

書き換え後

datahub.write.XXX.YYY

書き込むJSON文字列

{"value": <書き込む値>}

任意のデータをDataHubに渡す方法

Datahubにデータを渡すことができます。Datahub PublishノードのTopicに任意の半角英数字を指定します。書き込むデータは、msg.payloadに指定します。指定できるデータは文字列、数値、真偽値です。

Datahub PublishノードのTopicは、DataHubのTopicで指定できます。

Topicをまとめて指定する方法

Datahub SubscriptionノードのTopicをまとめて指定できます。これにより、同じ処理の場合は、ひとつのノードの指定で済みます。Topic名の一部に記号「>」を指定します。

例) すべてのデータを取得する場合

>

例) Deviceに関連するすべてのTagを取得する場合

devicehub.raw.XXX.>

例) IPSO Topicすべて指定する場合

devicehub.standard.>

Flowの使い方

最初の操作

ノードの中から”inject”を選択して右のFlowにドラッグ&ドロップします。

ドロップしたノードをダブルクリックすると、ノードの設定を行えます。この設定では、timestamp(エポックミリ秒)を次のノードに送ります。「Done」をクリックすると、ノードの設定が完了します。

ノードの中から”debug”を選択して右のFlowにドラッグ&ドロップします。

配置した2つのノードにある灰色のコネクタをドラッグして、2つのノードをつなぎます。

右上のSaveをクリックします。クリックするまで、フローは動作しません

  

timestampの左側をクリックすると、debugウィンドウにタイムスタンプが表示されます。

右側の「+」をクリックすると、複数のフローを作成できます。また、タブをクリックすると、Flowの名前を変更することや削除できます。

変数

changeノードですべての変数を操作できます。変数名は、任意のアルファベットが使えます。

  • msg
    次のノードまで有効な変数です。すべてのノードはmsg.payloadでデータのやり取りします。
  • flow
    フロー内に存在するノードまで有効な変数です。
  • global
    LoopFlow全体のノードで有効な変数です。

通常はmsgを使用します。globalはLoopFlow全体に影響を与えるため注意して使用してください。

データ型

JavaScriptで使えるすべてのデータ型を使うことができます。

条件分岐

switchノードを使用すると、条件分岐をさせることができます。1の出力は1番上のコネクタ、2の出力は上から2番目のコネクタ、3の出力は上から3番目のコネクタです。

この例では3つの条件を設定していますが、任意に増やすことができます。

ダッシュボード

LoopFlow上で簡易的な可視化を行うことができます。msg.payloadに可視化したいデータを渡します。

  • chart
    折れ線グラフ、棒グラフ、円グラフを表示します
  • gauge
    最新値を表示します

ダッシュボードの設定を行うため、鉛筆アイコンをクリックしてください。

Group(画面の配置)の設定を行います。さらに、Tabの鉛筆アイコンをクリックしてください。

ここでは、タブ(全体の画面)の名前を設定し、Addをクリックします。Groupの設定画面に戻るので、GroupのAddをクリックし、chartのDoneをクリックします。

Saveを押した後に、リンクアイコンをクリックすると、ダッシュボードの画面に遷移します。

このダッシュボードは簡易的なため、LoopFlowのSaveやGWの再起動で、描画されている値がリセットされます。

フロー設定例

インポート方法

サンプルをお使いのFlowにインポートできます。右上のメニューからClipboardをクリックしてください。

フロー設定をpaste nodes hereに貼付け、Importをクリックしてください。

設定例1

リアルタイムのグラフ表示をします。任意のdebugを数回クリックしてください。debugをクリックした順番にグラフが表示されます。

※ダッシュボードのTabとGroupの設定が必要です。

フロー設定
[{"id":"d2c71857.558998","type":"inject","z":"cbcf0338.b17e1","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"x":600,"y":120,"wires":[["828a22c1.ac819"]]},{"id":"fb9bf5d7.1f5818","type":"inject","z":"cbcf0338.b17e1","name":"","topic":"","payload":"5","payloadType":"num","repeat":"","crontab":"","once":false,"x":600,"y":200,"wires":[["828a22c1.ac819"]]},{"id":"1d5c2de7.bae852","type":"inject","z":"cbcf0338.b17e1","name":"","topic":"","payload":"8","payloadType":"num","repeat":"","crontab":"","once":false,"x":600,"y":280,"wires":[["828a22c1.ac819"]]},{"id":"828a22c1.ac819","type":"ui_chart","z":"cbcf0338.b17e1","name":"","group":"b9675990.abaec8","order":0,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":720,"y":200,"wires":[[],[]]},{"id":"b9675990.abaec8","type":"ui_group","z":"","name":"Default","tab":"67b10924.072d18","disp":true,"width":"6","collapse":false},{"id":"67b10924.072d18","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]

 設定例2

8.8.8.8にpingコマンドを実行し、標準出力を受け取ります。

フロー設定
 
[{"id":"1b5f9c3f.9bb5e4","type":"inject","z":"cbcf0338.b17e1","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":620,"wires":[["2bb77943.21ac56"]]},{"id":"a5377dcf.9eacb","type":"debug","z":"cbcf0338.b17e1","name":"","active":true,"console":"false","complete":"false","x":320,"y":620,"wires":[]},{"id":"2bb77943.21ac56","type":"exec","z":"cbcf0338.b17e1","command":"ping -c 1 8.8.8.8","addpay":false,"append":"","useSpawn":"","timer":"","name":"","x":220,"y":620,"wires":[["a5377dcf.9eacb"],[],[]]}]

設定例3

www.jig-saw.comにHTTPリクエストを行い、ページのcopyrightを取得します。

フロー設定
[{"id":"a4cac8e3.18f9e8","type":"debug","z":"cbcf0338.b17e1","name":"","active":true,"console":"false","complete":"false","x":400,"y":200,"wires":[]},{"id":"df8f35d.c0840c8","type":"inject","z":"cbcf0338.b17e1","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":100,"y":200,"wires":[["b6be1a7.d62e0e8"]]},{"id":"4de91cdb.51b374","type":"html","z":"cbcf0338.b17e1","name":"","tag":".copyright","ret":"html","as":"single","x":305,"y":200,"wires":[["a4cac8e3.18f9e8"]]},{"id":"b6be1a7.d62e0e8","type":"http request","z":"cbcf0338.b17e1","name":"","method":"GET","ret":"txt","url":"https://www.jig-saw.com/","tls":"","x":205,"y":200,"wires":[["4de91cdb.51b374"]]}]

 

LoopEdgeログイン

LoopEdgeへログインする際はまず、IPアドレスを知る必要があります。IPアドレスはLoopEdgeがインストールされているゲートウェイ機器にディスプレイを接続してIPアドレスを確認します。

下記の例ですと https://10.0.3.15/ でアクセスが可能です。アカウント情報は納品時にお知らせいたします。

 

LoopEdgeは同じネットワーク上であれば、インターネット接続が利用できない場合でもアクセスできます。サポートするブラウザーは以下のとおりです。

Google Chrome シークレットウィンドウを推奨
Mozilla Firefox プライベートウィンドウを推奨
Apple Safari プライベートウィンドウを推奨 

※同じアカウントで連続して7回失敗した場合は5分間アカウントがロックされます。

ノード一覧

標準のノードついて説明します。

LitmusAutomation

  • Datahub Publish
    Datahubにデータを送信します。
  • Datahub Subscribe
    Datahubからデータを受け取ります。

input

  • inject
    タイムスタンプまたは、ユーザ定義のパラメータを次のノードに渡します。定義され間隔または、手動で行うこともできます。
  • catch
    フローが引き起こす可能性のあるエラーを受け取るために使用します。
  • status
    ノードのステータス情報を共有できます。例えば、MQTTノードは、接続されているかどうかを示すことができます。
  • link
    任意のフロー間で仮想ワイヤを作成します。outputにあるlinkから仮想的に接続できます。
  • mqtt
    外部のMQTTブローカーに接続し、指定したトピックのメッセージを受信するために使用します。
  • http
    webサーバーとして機能します。必ずoutputにあるhttpノードと一緒に使用します。セキュリティ上、URLに指定できるのは「/」のみです。
    http://{GWのIPアドレス}/flows/api/で待ち受けます。
  • websocket
    websocket接続を行いメッセージを受信します。
  • tcp
    TCPポートに接続や、特定のポート上で任意のTCP要求を受けることができます。
  • udp
    UDPポートに接続や、送信されるメッセージを受信するために使用します。
  • serial
    GWに接続されたシリアルポートからメッセージを受信するために使用します。

output

  • debug
    このノードに受信されるメッセージをリアルタイムにデバックペインに表示するために使用します。
  • link
    任意のフローに仮想的にワイヤを接続します。inoutのlinkに接続できます。
  • mqtt
    外部のMQTTブローカーに指定したトピックのメッセージを送信します。
  • http
    inputのhttpで受け付けたリクエストに対してレスポンスを返します。
  • websocket
    websocket接続を行いメッセージを送信します。
  • tcp
    接続済みのTCPポートにメッセージを送信します。
  • udp
    updポートにメッセージを送信します。
  • serial
    GWに接続されたシリアルポートにメッセージを送信します。

function                

  • function
    JavaScriptで任意のコードを記述できます。(JavaScriptを理解している方向け)
  • template
    指定したパラメータに文字列を書き込みます
  • delay
    特定の時間または、ランダムな時間だけメッセージを遅延させます。また、1秒あたり20メッセージなどの頻度を変更するためにも使用できます。
  • trigger
    入力メッセージ受信時と時間経過時で特定のメッセージを送信できます。ウォッチドッグタイマーとして機能します。
  • comment
    フロー上にコメントを記述するために使用します
  • http
    HTTPリクエストをサーバーに送信し、応答を待ちます。
  • tcp
    指定のTCPポートでサーバーに送信し、応答を待ちます。応答を待たないノードがinputやoutputにあるtcpノードになります。
  • switch
    条件に基づいて、メッセージを分岐します。
  • change
    メッセージのプロパティを変更、削除、追加を行います。
  • range
    入力メッセージの数値を拡大・縮小に使用します。例として、温度の値0~5Vを0~100℃にする場合などに用います。
  • split
     メッセージを指定文字列で分割し、それぞれメッセージとし出力します。例として、1個のメッセージ「a,b,c」を「,」で分割すると、「a」、「b」、「c」の3個のメッセージが作られます。
  • join
    splitで分割したメッセージを1個のメッセージに戻します。
  • csv
    CSVのメッセージを、JavaScriptオブジェクトに変換します。また、JavaScriptオブジェクトの場合は、CSV文字列に変換します。
  • html
    HTMLのメッセージから、要素を抽出します。HTMLを解析し、一致する要素の配列を返します。
  • json
    JSONのメッセージを、JavaScriptオブジェクトに変換します。また、JavaScriptオブジェクトの場合は、JSON文字列に変換します。
  • xml
    XMLのメッセージを、JavaScriptオブジェクトに変換します。また、JavaScriptオブジェクトの場合は、XML文字列に変換します。
  • rbe
    2つの連続した入力が、前の入力と現在の入力と異なるときにメッセージを生成します。

social

  • e-mail in
    メールサーバーに接続し、新しいメールを受信します。
  • e-mail
    メールサーバーに接続し、メールを送信します。

storage

  • tail
    この機能は、LinuxおよびMACで動作します。Windowsでは動作しません。設定されたファイルを監視し、新たに追加された文字列をメッセージとして生成します。
  • file in
    指定したファイルの内容を読み取ります。
  • file out
    指定したファイルにデータを書き込みます。

advanced

  • watch
    指定したファイルの変更を監視します。
  • exec
    指定のコマンドを実行します。システムに影響があるコマンドがあるため、取扱に注意して下さい。

 

Backup/Restore

現在のLoopEdgeの構成設定をjson形式で保存します。
また、Backupデータを読み込んで設定をRestoreします。

Backup

現在のLoop Edgeの設定をjson形式で保存します。

  1. ナビゲーションパネルのSystem – Backup/Restoreを選択します。
  2. Backup/Restore Configuration内のBackupボタンを押下します。
  3. 自動的に設定がバックアップされたjsonファイルが、操作しているパソコン上にダウンロードされますので、ファイルを保管してください。

BackupされるJsonについて

生成されるjsonデータは大きく以下に分かれて生成されます。

  • 認証情報
  • デバイスマネージメント情報
  • Datahub設定
  • マーケットプレイス情報
  • Flows情報

Restore

Backupデータを読み込んで設定をRestoreします。

  1. ナビゲーションパネルのSystem – Backup/Restoreを選択します。
  2. Backup/Restore Configuration内のRestoreボタンを押下します。
  3. ファイル選択画面にて、バックアップしておいたjsonファイルを指定し、開きます。
  4. 警告画面が出ますので、Restoreを実行するにはOKを押下します。

    Loading画面が表示されます。このまま待ちます。
  5. Restoreが完了したら、Upload Successfullyの画面がでます。LoopEdgeの再起動をしていますので、少し待ってから、ブラウザー画面を再読み込みします。

Status

LoopEdgeで使える各種APIやUIのステータスとオンライン/オフライン状態を確認できます。

確認できる情報一覧

API

  • DataHub
  • Device Management
  • Authentication
  • DeviceHub
  • Marketplace
  • FTP

UI

  • LoopEdge

License

Licenseについて

LoopEdgeは試用版のLicenseのActivateで、15日間の利用が可能です。
製品版を購入するとLicense Keyが発行されるので、Keyを有効にすることで、製品版として扱えます。