LoopEdge通信要件

ここでは、LoopEdgeで利用する通信ポートを説明します。ファイアウォールの設定を検討するときは、次のポートをご利用ください。

※LoopEdgeはNAT環境で利用は可能ですが、Symmetric NAT 環境ではサポート対象外です。

Outbound 通信

LoopEdgeは、NTP(Network Time Protocol)、ライセンス、リモートアクセス、ルLoopCloud、サードパーティーのCloudサービスなどのサービスに対する無制限のOutbound接続を想定しています。Cloudサービスは通常は動的IPアドレスを持ちます。したがって、Outboundのトラフィックを制限することは望ましくありません。

ファイアウォールを設定する際は以下のOutboundを無制限とすることをお勧めいたします。

  • TCP 443(https)
  • TCP 80(http)
  • UDP 5683(lwm2m)では、少なくとも240秒のファイアウォールセッションTTL(存続可能時間)が必要です。
  • TCP 8883(mqtt-ssl)
  • TCP 1883(mqtt-tcp)
  • UDP 9993(リモートアクセス)
  • UDP / TCP 53(dns) – Public DNSサーバが使用されている場合のみ
  • UDP 123(ntp) – Public NTPサーバが使用されている場合のみ

Inbound 通信

LoopEdgeは、次の場合を除き、ファイアウォールで開かれた特定の受信ポートは必要ありません。

  • 戻りトラフィックを許可するための通常のTCP / UDPセッション
  • TTLの240秒間のセッション要件については、上記のリストのUDP 5683を参照してください。

LoopEdgeデバイスポート

LoopEdgeデバイス自体には、以下のポートがオープンしています。

  • TCP 443 – HTTPS
  • TCP 80 – HTTP、443にリダイレクトする
  • TCP 21,2121 – FTP
  • TCP 41250:41275 – パッシブFTPポート
  • UDP 5353 – mDNS(マルチキャストDNS)
  • TCP / UDP 5355 –  LLMNR  (リンクローカルマルチキャスト名前解決)

その他のポートはLoopEdgeOSのiptablesによってブロックされます  。LoopEdge Flowsアプリケーションは発信トラフィックのみを開始し、着信接続を待機しません。

Marketplace Ports

Marketplaceアプリケーションは、独自のポートを管理します。これらのポートはアプリケーション固有のもので、iptablesの外側にありますので制限はされておりません。

 

 

LoopEdge Ver1.2.0

Newバージョン 1.2.0リリースノート

このリリースには、次の新機能およびBugFixが含まれています。

新しいバージョンを利用する場合は弊社サポートまでご連絡ください。サポートご契約者様のみインストール媒体を提供させていただきます。

  • 新機能及びBugFix
    • 機能拡張
    • DeviceHub
    • MarketPlase
  • 既知の問題

機能拡張

  1. LoopEdgeのインストーラにISO / USBイメージに追加されました。
  2. さまざまなユーザビリティの改善がWeb UIに加えられました。

DatahubDevicehub

  1. 以下のドライバが追加されました。
    a.Omron NJ drivers
    b.Omron CJ serial driver
    c.Siemens Profibus DP driver
    d.Master K80-S serial driver
    e.GE Fanuc 90/30 ethernet driver
    f.GE Fanuc CMM serial driver
  2. PLC-5コントローラの接続/切断の問題が修正され、拡張ファイルレジスタが追加されました。
  3. CSVファイルをダウンロードすると、レジスタの説明欄も含まれるようになりました。
  4. バックアップ/リストアタイムアウトの問題が修正されました。

Marketplace

  1. Marketplaceを使用している時にLoopEdgeコントローラがパフォーマンスへの問題を起こしていましたが、改善されました。

既知の問題

  1. ターミナルユーザインターフェイス(TUI)メニューから手動で時刻を設定しても、時刻が反映されません。

LoopEdge Ver1.3.0

Newバージョン 1.3.0リリースノート

このリリースには、次の新機能およびバグフィクスが含まれています。

新しいバージョンを利用する場合は弊社サポートまでご連絡ください。サポートご契約者様のみインストール媒体を提供させていただきます。

  • 新機能
    • デバイス検出
    • Cloud Service Integration
    • DeviceHubの機能拡張
    • デバイス管理の機能拡張
    • Flowの強化
    • ターミナルユーザーインターフェイス(TUI)の機能拡張
    • その他の機能拡張
  • 既知の問題

デバイス検出

  1. PLCデバイス検出サービスが追加されました。この機能はDeviceHubメニューに追加されています。

Cloud Service Integration

  1. 下記のクラウドサービスと接続が可能となりました。Integrationメニューからコネクタの作成ができます。

a.IBM Watson MQTT 
b.Microsoft Azure IoT Hub
c.Google Cloud IoT Core
d.汎用MQTTコネクタ(LoopCloud用)
e.ループバックコネクタ(パフォーマンステスト用)

DeviceHubの機能拡張

  1. タグの一括アップロードの修正により、OMAオブジェクトIDが正しく処理されるようになりました。
  2. タグの一括アップロードの場合、カウント列がサンプルのCSVファイルに追加されています。この数は、Siemensなどの特定のデバイスドライバにのみ関係します。
  3. タグを一括アップロードする場合、PLCが予め定義されたレジスタ(Omron-NJなど)を持たないフリータグデバイスである場合、CSVファイルにアドレスがリストされている場合は、エラーメッセージが表示されます。フリータグPLCは、PLCで定義されているとおりのレジスタ名を必要とし、アドレスは不要です。
  4. 一括アップロードCSVでは、列 の意図を明確にするためにname列がregisterNameに変更されました。下位互換性を保つために、nameを列ヘッダーとして使用できます。
  5. すべてのタグを一括ダウンロードすると、OMAオブジェクトIDが正しく取得されるようになりました。
  6. デバイスを削除すると、警告メッセージが表示されます。  このデバイスの削除は元に戻せません 。デバイスの名前を明示的に入力するよう求められます。
  7. Tagテーブルは、より多くのコンテンツを効果的に表示するように改良されました。
  8. Tagsページでは、検索ボックスと、チェックボックスを選択したデバイスフィルタを使用してコンテンツフィルタを有効にします。
  9. Tagの削除を確認するメッセージが表示されます。
  10. Tagレジスタタイプはすべて大文字で表示されるようになりました。
  11. TagsページにDB番号の列が追加されました。
  12. オプションフィールドは、レジスタを追加するときに設定できるようになりました。 
  13. 次のPLCデバイスドライバは、マルチレジスタサポートを含むように拡張されました。
    1. Rockwell Allen-Bradley CompactLogix 
    2. Mitsubishi QJ71E71 ASCII 
  14. 以下のPLCデバイスドライバがサポートされました。
    1. Koyo Click
    2. Mitsubishi R04 Ethernet Binary
    3. OPC UA
    4. Panasonic FP Serial

デバイス管理の機能拡張

  1. DHCPからのDNSサーバーは、静的に割り当てられたDNSサーバーよりも優先されます。LoopEdge Network機能では、静的に割り当てられたDNSサーバーがフォールバックDNSリゾルバとして表示されます。
  2. プライベート/パブリックキーのペアは、デバイスの最初の起動時に作成されます(RSA-2048暗号化アルゴリズム)。このキーペアはデバイスの識別に使用され、デバイスのアクティベーション時にこのペアの証明書が作成されます。
  3. LoopEdgeにカスタム証明書を追加できるようになりました。
  4. HIDデバイスのリストがUIで利用可能になりました。
  5. シリアルポートのボーレート(通信速度)が正しく表示されるようになりました。

Flowの強化

  1. DataHub PublishノードとSubscribeノードは、パレット内の位置を入れ替えて、他の入力/出力ノードと一致します。
  2. パレットのデフォルトのファンクションノードにメッセージカウンタノードが追加されました。

ターミナルユーザーインターフェース(TUI)

  1. TUIのパフォーマンスが向上しました。

既知の問題

  1. TUI:TUIメニューに手動で時刻を設定しても、時刻を手動で設定はできません。
  2. 選択されたLTEモデム/プロバイダーのみがサポートされます。これはAT&Tでテストされています。
  3. クラウドコネクタの機能はまだ実験的なものです。

LoopEdgeをFTPクライアントとして使用するフロー

FTPサーバーにLoopEdgeがクライアントとしてアクセスする方法の例です。

FTPサーバーのファイルを取得して、ファイルの内容を読み取ります。

    • LoopEdgeにファイルを転送するためのフローを作成する
    • ファイルの内容を読むためのフローを作成する
    • フローを起動する
    • FTP Get Flowのビデオ
    • ファイル読み込みフローのビデオ
  • フローのトラブルシューティング

 

  • ノードパレットのfilter nodes検索機能を使用して、fileノードなどの特定のノードを検索できます。
  • フローの設定を変更したときは、必ずフローを保存してください。保存しない場合、変更したフローは実行されません。
  • ノード構成で使用されるファイル名は、大文字と小文字が区別されます。

 

LoopEdgeにファイルを転送するためのフローを作成する

ファイルをLoopEdgeデバイスに転送する必要がある場合 は、USBドライブを使用しないでください。ファイル形式と書き込み権限によって問題が発生する可能性がありますので、より安全で信頼性の高いFTPを使用してください。

ファイルをLoopEdgeデバイスに転送するFTP Getフローを作成するには、次の手順を実行します。

      1. ftpサーバーを使用するシステムでは、テキストを含むファイルを作成してください。この例では、次のHello World! Let's connect文字を含むファイルHelloWorld.txtを使用しています。
      2. LoopEdge左側のナビゲーションパネルから[ Flows ]を選択し、Go to LoopF​​lowsをクリックします。
      3. パレット内のStorageにあるftp ノードをキャンバスにドラッグします。ftpノードを使用する場合、LoopEdgeは常にクライアントです。ftpノードを使用して、ftpサーバーと対話し、標準のftpクライアントアクション(List、Get、Put、Delete)を行います。

      4. ftpノードをダブルクリックして、FTPサーバを設定するエディタを起動します。
      5. 編集ダイアログで、鉛筆マーク をクリックし  て新しいFTPサーバーを追加します。
      6. 「ftp in > Edit ftp node」画面にて構成パラメーターを入力し、[ Update ]をクリックします。
        FTPサーバの詳細を入力して、LoopEdgeとの接続を確立します。

        • ホスト:FTPサーバーのIPアドレス
        • ユーザー名:FTPユーザー名
        • パスワード:FTPユーザーのパスワード 
        • ポート:LoopEdge FTPサーバーの場合は、ポート21を使用
      7. 「Edit ftp in node」ダイアログに戻り、次のように構成して「Done」をクリックします。
        • Oparation:get
        • Filename:転送/取得するリモートマシン上のソースファイルの名前
          この例では、次のように入力します。/HelloWorld.txt
        • Local Filename:LoopEdgeクライアントの宛先ファイル名
          この例では、次のように入力します。/Hello.txt
          注:ファイル名には必ずスラッシュ(/)を含めてください。
        • Name :(オプション)フロー内のFTPノードの名前を入力します。

      8. debugノードをキャンバスのftpノードの右側にドラッグし、ftpノードと接続します。
      9. injectノードをキャンバスのftpノードの左側にドラッグし、ftpノードと接続します。
      10. [ SAVE ]  をクリックして、作成したフローを保存します。
      11. FTPのGet操作のフローを起動します。
        実行状態は、キャンバスの下の[ debug ]タブで確認できます。

      ファイルの内容を読むためのフローを作成する

      このシナリオではFTPフローを使用してデバイスに転送されたファイルの内容を読み込むためにfileノードを利用しています。

          1. ノード内のファイル (パレットのストレージの下)をキャンバスにドラッグし、  そのパラメータを変更します。
            • ファイル名を入力します。この例では、LoopEdgeクライアントに転送されたばかりのファイルを入力します。 /Hello.txt
            • utf8形式の文字列として出力します。
          2. injectノードをキャンバスのfileノードの左側にドラッグし、fileノードと接続します。これはフローの起動ノードとして機能します。
          3. debugノードをキャンバスのfileノードの右側にドラッグし、fileノードと接続します。これは出力ノードとして機能します。
          4. [ SAVE ]  をクリックして、作成したフローを保存します。
          5. ファイルの読み取りのフローを起動します。
            実行状態は、キャンバスの下の[ debug ]タブで確認できます。

      フローを起動する

      前の手順で作成したフローは、次のようになります。

      フローを起動するには

          1. ftpフローのinject (timestamp)ノードのボタンをクリックします。timestampは単にイベントのトリガとして機能します。この場合、ftp getを実行しています。
          2. 次に、フロー内のファイルのinject (timestamp)ノードのボタンをクリックします。このボタンは、ファイルの内容を読み取ります。
          3. キャンバスの下にある[ debug ]タブを選択すると、トリガーされたフローの結果が表示されます。

       

      FTP Get Flowのビデオ

      このビデオ(オーディオなし)は、ファイルを取得するためにftpフローを使用する方法を示しています。

      ファイル読み込みフローのビデオ

       

      フローのトラブルシューティング

      結果が表示されない場合は、次の項目を確認してください。

        • フローの変更を保存しましたか? 
          右側のキャンバスの上にある [ SAVE ]をクリックします。
        • debugノードは有効になっていますか?
           debugノードのスイッチを切り替えます。

ファイルへの書き込みと読み取りのフロー

Flowsを使用してファイルへの書き込みと読み取りを行う方法の例です。

LoopEdgeデバイス上にログファイルを作成し、その内容を読み込みます。

    • ログファイルを作成する
    • ファイルへの書き込み
      • ファイルへのメッセージの書き込み
    • ファイルの読み込み
    • ファイルへの書き込みと読み取りのフローのビデオ
    • FTPソフトによるログファイルの取得
    • ノードパレットのfilter nodes検索機能を使用して、fileノードなどの特定のノードを検索できます。
    • フローの設定を変更したときは、必ずフローを保存してください。保存しない場合、変更したフローは実行されません。
    • ノード構成で使用されるファイル名は、大文字と小文字が区別されます。

ログファイルを作成する

データを書き込む前にファイルを作成します。

ログファイルを作成するには:

  1. 左側のナビゲーションパネルで、[ Flows ]を選択します 。
  2. [ Flows ]ウィンドウで、Go to LoopF​​lowsをクリックします 。
  3. 新しいフローを開始するには、キャンバスの右上にある+をクリックします。
  4. file(write)ノードをキャンバスにドラッグします。
    このノードは、パレットのストレージの下にあります。fileノードが2つありますので注意してください。ファイルを読み込むためのノードとファイルへ書き込むためのノードです。
  5. fileノードをダブルクリックし、スラッシュ(/)で始まるファイル名を入力します。

    注意:ファイル名にはスラッシュが必要です。例:  /loop1.log
    ファイルはLoopEdgeデバイス上に作成されます。 サブディレクトリがすでに存在する場合は、ファイルへのフルパスを指定できます。例: /logfiles/loop1.log

  6. fileノードに追加するActionを選択し、Doneをクリックします。
  7. injectノードをキャンバス上にドラッグします。
    このノードはパレットの入力の下にあります。デフォルトではtimestampになっています。このノードは 、ファイルを作成するためのトリガーとして機能します。他のペイロードオプションも利用可能ですが、後ほど詳細なフロー例で説明します。
  8. injectノードとfileノードを接続します。
  9. キャンバスの右上にある[ SAVE ]をクリックして、フローを保存します。
    保存に問題がある場合、エラーメッセージがキャンバスの下のdebugタブ領域に表示されます。保存に成功すると、debugタブにメッセージは表示されません。

  10. inject (timestamp)ノードの左側にあるボタンをクリックして、ファイルを作成するタイムスタンプを挿入します。この例では、/loop1.logファイルが保存されます。

    この手順での一般的なエラーは、ファイル名のスラッシュの省略です。スラッシュは必須です。

  11. ファイルが作成されたことを確認する手順については、「ファイルの読み込み」を参照してください。

ファイルへの書き込み

「ログファイルの作成」の手順  では、injectノードを使用してfileの作成を行いました。次の手順は、ファイルへの書き込みの基本的な例です。

作成したファイルへ追加の書き込みを行うには 

  1. inject (timestamp)ノードの左側にあるボタンをクリックしてtimestampをファイルに挿入します。inject (timestamp)ノードのボタンをクリックする都度、追加のtimestampをファイルに書き込みます。書き込まれたことを確認するには「ファイルの読み込み」の手順を参照してください。

ファイルへのメッセージの書き込み

作成したファイルへメッセージ(文字列)の書き込みを行うには 

  1.  inject (timestamp)ノードをダブルクリックして、Payloadのモード設定を文字列に変更し、メッセージを入力してDoneをクリックします。この例では、Hello Worldと入力しました  。
  2.  キャンバスの右上にある[ SAVE ]をクリックします。
  3. injectノードの左側にあるボタンをクリックして  、メッセージをファイルに挿入します。書き込まれたことを確認するには「ファイルの読み込み」の手順を参照してください。

ファイルの読み込み

ファイルの内容を読み込む手順

  1. ノード内のfileをキャンバスにドラッグします。
  2. ノードをダブルクリックし、Filenameを入力して[ Done ]をクリックします。
    出力は標準のutf8文字列形式です。

    ファイル名にはスラッシュが必要です。例えば: /loop1.log

     

  3. injectノードをキャンバス内のfileノードの左側にドラッグします。
  4. debugノードをキャンバス内のfileノードの右側にドラッグします。
  5. injectノードおよびdebugノードをfileノードと接続します。
  6. キャンバスの右上にある[ SAVE ]をクリックします。
  7. キャンバスの下部にある[ debug ]タブをクリックします。
  8. inject (timestamp)ノードの左側にあるボタンをクリックして  、フローを起動します。[ debug ]タブには、ファイルに書き込まれたタイムスタンプ(msg.payload)が表示されます。

    /loop1.log

ファイルへの書き込みと読み取りのフローのビデオ

ここまでの手順のビデオ(音声なし)です。

 

FTPソフトによるログファイルの取得方法

ローカルPCからFTPを使って作成したログファイルを取得する方法です。

  1. LoopEdgeのFTP serviceを起動します。
    LoopEdge左側のナビゲーションパネルから、[ System ] > [ FTP ]を選択します。
    FTP Serviceウィンドウにある[ Start ]ボタンをクリックしてFTP Serviceを起動します。
  2. LoopEdgeにFTP接続する際のユーザアカウントを作成します。
    Usersウィンドウの右側にある+をクリックします。Create UserウィンドウでUsernameを入力し、Add Userボタンをクリックします。
    Passwordが自動的に設定されますので、メモして、Closeボタンをクリックします。
  3. ローカルPCのFTPソフトからファイルをダウンロードします。
    ローカルPC上でFFFTPなどのソフトウェアを起動します。LoopEdgeのIPアドレス、上記手順2で作成したユーザアカウントを設定してLoopEdgeに接続します。
    ファイルは接続後、デフォルトのディレクトリに表示されていますので、ログファイルを選択して、ダウンロードします。

LoopEdgeインストール方法

ここでは、標準Intel製の x86アーキテクチャ 64bitデバイスにLoopEdgeをインストールする手順を掲載しております。ハード機器にはカスタマイズに優れたIntel製のNUC(ネクスト・ユニット・オブ・コンピューティング)ボードを使用したインストール手順を掲載します。

用意するハード機器

インストール手順の記事を開始する前に、次のハード機器の準備を行ってください。

・Intel製NUC
・モニター(NUCはHDMI出力にのみ対応)
・HDMIケーブル
・キーボードとマウス
・ファイルシステムFAT32用にフォーマットされたUSBフラッシュドライブ2つ
(それぞれ8 GB)

用意するソフトウエア

インストール手順の記事を開始する前に、次のソフトウエアの準備を行ってください。

・USBドライブソフトウエア(Windowsの場合はRufus、Linuxの場合はStartup Disk Creator
※ここではRufusを使った手順を掲載しております。
・Litmus AutomationのLoopEdgeファイル(loopedge.wic.gz)
※ファイル名は異なる場合があります。

LoopEdgeのインストール、大まかに以下の手順を実施します。

・USBドライブの準備
・IntelNUCデバイスのドライブをフォーマットする
・LoopEdgeをインストールする
・LoopEdgeのパーティションをリサイズする

USBドライブの準備

  1. LoopEdgeファイルをUSBフラッシュドライブにコピーします。これ以降、このUSBフラッシュドライブの事を「USB1」としておきます。
  2. ドライブのディスクパーティションを管理するために、GPartedという基本ソフト(OS)イメージを用意します。お使いのパソコンに合わせて公式サイトからダウンロードします。

  3. Rufusを使用してUSBフラッシュドライブを生成します。
    これ以降、このUSBフラッシュドライブを「USB2」としておきます。

3-1. USB2をUSBスロットに挿入します。
3-2. Rufusを起動します。
3-3. Rufus画面では、USB2を選択します。
3-4. ブートの種類を指定してください。isoイメージを使用してディスクを生成します。
3-5. スタートを押してUSB2にGPartedを書き込みます。

 

デバイスのドライブをフォーマットする

  1. モニター、キーボード、マウスをNUCに接続します。
  2.  USB2フラッシュドライブを接続しておき、NUCを起動します。NUCを起動すると以下のようにGPartedが起動し、次のような画面が表示されます。
    GParted Liveを選択します。  
  3. 次にキーレイアウト変更の設定です。標準ではキーボード設定がUSキーマップ設定ですので、日本語キーボードの場合は、「Select keymap from arch list」を選択してENTERをクリックします。
  4. 言語設定Terminalウィンドウですので、日本語の場合は該当の番号を入力してENTERをクリックします。
  5. モード設定のTerminalウィンドウです。「Continue to start X to use GParted automatically」の番号を入力してENTERをクリックします。
  6. GUI画面に切り替わり、GPartedが起動します。
  7. 自動でGPartedアプリが起動しない場合はGPartedアイコンをクリックして起動します。

  8. GPartedが起動すると、現在のドライブのパーティションが表示されますので、一度全てのパーティションをDeleteボタンで削除します。

     削除されたパーティション状態

  9. 削除されたパーティションの状態にするためにApplyボタンをクリックします。

     確認ダイアログもApplyを選択します。

     完了するとポップアップが表示されるのでCloseをクリック

  10. GParted画面を閉じます。

LoopEdgeをインストールする

  1. USB1をNUCに差し込みます。
  2. GUI画面からTerminalアイコンをクリックします。

  3. Terminalウィンドウでlsblkコマンドを実施してデバイス上のディスクパーティションを確認します。通常は/dev/sdcパーティションが表示されます。
    mountコマンドで必要ですので、パーティション名をメモしておきます。
  4. Terminalウィンドウで次のコマンドを実施してパーティションをマウントするためのディレクトリを生成します。sudo mkdir /mnt/usb
  5. Terminalウィンドウのコマンドラインで、次のコマンドを実施して、パーティションをLoopEdgeイメージでマウントします。
    $ sudo su
    # mount /dev/sdc1 /mnt/usb
    # cd /mnt/usb
    # zcat loopedge.wic.gz | dd of=/dev/sda

[コマンドの説明]

sudo su ルートユーザーに昇格します。
sudo mount でマウントコマンドを実施 /dev/sdc1は4.の手順のパーティション名で読み替えてください。 マウント先を指定しています。 /mnt/usb
cd /mnt/usbでマウント先ディレクトリに遷移します。
zcat loopedge.wic.gz でzcatコマンドという圧縮されたファイルの内容を表示するコマンドを実施します。loopedge.wic.gzはUSB1に格納されているLoopEdgeのイメージ名称を設定してください。
・ | の後に 表示されたファイルを dd of=/dev/sda ddコマンドというファイルを変換出力するコマンドでdev/sdaディレクトリに展開します。
これらは環境によりディレクトリ名称が異なる場合があります。

LoopEdgeのパーティションをリサイズする

  1. GPartedアイコンをクリックしてアプリケーションを開きます。

  2. パーティションの一部スペースが使用されていないことを警告するポップアップダイアログが表示されることがありますので、ダイアログが出る場合は、Fixを選択するボタンをクリックしてGParted画面に移行します。
  3. GPartedでは、LoopEdgeの展開が完了しているとメインドライブ(画像では/dev/sdb)に7つのパーティションが表示されます。
  4. ラベルのdata部分を選択して、右クリックでリサイズをクリックします。
     画像では/dev/sdb7 がラベル data 部分
  5. 空き領域となっている未割当部分を全て下記のように割り当ててリサイズをクリックします。
  6. 割り当てられた新しいパーティションで「Apply」をクリックします。
  7. GParted画面を閉じます。
  8. GUIメニューからExitアイコンをクリックします。

  9. 出てきたポップアップから、Shutdownを選択しOKをクリックします。
  10. Shutdownを行ったら、メディアを取り除く画面が表示されます。USB1とUSB2はここで取り外してENTERをクリックして続行してください。
  11. NUCを再度起動するとLoopEdgeが起動します。

LoopEdge Ver1.1.0

Newバージョン 1.1.0リリースノート

このリリースには、次の新機能およびバグフィクスが含まれています。

新しいバージョンを利用する場合は弊社サポートまでご連絡ください。サポートご契約者様のみインストール媒体を提供させていただきます。

  • 新機能
    • 機能拡張
    • DeviceHubとDatahub
    • Application/Marketplace
    • System
    • ターミナルユーザインターフェース(TUI)
  • 既知の問題

 

機能拡張

  1. タイムゾーンを設定する機能を追加しました。[Edge-837、Edge-595]
  2. メモリとストレージのデータは、チャートで表示が可能となりました。[Edge-818]
  3. ホスト名、DNS、NTPの設定が可能となりました。[Edge-788、Edge-789、Edge-798]
  4. ファームウェアのバージョン情報が表示されるようになりました。[Edge-804、Edge-799]
  5. ファームウェアのアップグレード後にIPアドレスが正しく表示されない問題が改善されました。[Edge-805、Edge-802]
  6. クラウドのアクティブ化とリフレッシュの問題を改善。 [Edge-806、Edge-832]
  7. ネットワーキングスタックが改良されました。[Edge-778]
  8. 重複するデバイス名を防止します。[Edge-793]
  9. ネットワーク設定画面の表示が改善されました。[Edge-862]
  10. エンドユーザー使用許諾契約書(EULA)には、初回のログインの受諾が必要なりました。[Edge-899、Edge-895、Edge-911、Edge-938、Edge-896]
  11. Enterキーを押すとUIフォームが送信されます。[Edge-925]
  12. デフォルトのトピックは、[統計]ページに表示されなくなりました。[Edge-920]
  13. 証明書のインストールに関する問題が改善されました。[Edge-869、Edge-845]
  14. ユーザーの役割を変更できるようになりました。オブザーバー/デベロッパーの役割を持つ ユーザーには、追加/削除オプションが表示されなくなりました。[Edge-842、Edge-883]
  15. Firefoxに表示されたデバイスカードが正しくレンダリングされるようになりました。[Edge-901]
  16. デバイスステータスの表示に関する問題が修正されました。[Edge-856]
  17. 多くのUI主要要素にツールチップが追加され、迅速にヘルプにアクセスできます。[Edge-753]
  18. DataHubシステムコネクタはバックアップ/リストアに含まれていません。[Edge-959]
  19. ブラウザーで最初にアプリケーションをロードするのに要する時間が短縮されました。[Edge-968]
  20. [デバイス管理]ページに、アクティブ化のステータスが表示されます。[Edge-960]
  21. データ型変換はレジスタに対して実装されています。UIは10進数の入力を受け取り、8進数または16進数に変換します。[Edge-957]
  22. IDは内部処理にのみ関連するため、さまざまな画面のID列は削除されました。[Edge-974]
  23. DataHub RAWサブスクリプションが正常に更新されると、ステータスが正しく表示されます。[Edge-951]

DatahubDevicehub

  1. DeviceHubタグのエクスポート(CSV)機能が追加されました。[Edge-661]
  2. PollOnceトピックがDeviceHubタグアクションリストに追加されました。[Edge-798]
  3. DeviceHubドライバの修正:Rockwell ドライバの依存関係が追加されました。[Edge-782]
  4. ドライバ名をデバイスカード上でコピーする機能が追加されました。[Edge-767]
  5. DeviceHubデバイスカードに長いテキスト文字列が正しく表示されるようになりました。[Edge-814]
  6. DeviceHubタグページから未加工のトピックをコピーできない問題が改善されました。[Edge-831]
  7. DeviceHubの追加ドライバのサポート:10MBのEthernet用Mellanoxドライバが追加されました。[Edge-825]
  8. OMAバインディングの場合、インスタンスIDタイプがstringに変更となりました。[Edge-766]
  9. DataHubの改良により、同じクライアントIDによる重複した接続が防止されます。[Edge-796]
  10. DataHub UIの改良により、より小さい画面解像度が処理されます。[Edge-428]
  11. DataHubは重複した名前の生のトピックの作成を防ぎます。[Edge-797]
  12. DeviceHubデータタイプの大文字と小文字の区別は、bulk-loadingタグのCSVファイルで調整されます。[Edge-908]
  13. DeviceHubの表示が改善されました。[Edge-847]
  14. デバイスがない場合、DeviceHubはポーリングが開始されないようになりました。[Edge-861]
  15. デバイスを追加するときは、デバイス名は必須となりました。[Edge-836]
  16. DataHubクラウドコネクタの削除は、ポーリングステータスが終了するのを待つことがなくなりました。[Edge-849]
  17. クラウドコネクタのDataHub未処理のトピックを削除できるようになりました。[Edge-853]
  18. HostinfoはIPv6ゲートウェイアドレスを返します。[Edge-890]
  19. LoopCloudでデバイスを有効・無効が出来るようになりました。[Edge-909]
  20. ドライバのパフォーマンスが向上しました。[Edge-792]
  21. DeviceHubのTagsで、[Download Tags]のアクションが追加されました。[Edge-921]
  22. DeviceHubのTagsのアクションには、軽微なテキストの改善を行いました。[Edge-900]
  23. 多数のTag(10k +)のパフォーマンスが向上しました。[Edge-848]
  24. タグの一括読み込みで、20k個以上のタグを持つCSVを処理できるようになりました。[Edge-967]

Application/Marketplace

  1. アプリケーションのアンインストール時に、確認チェックを追加しました。[Edge-816]
  2. レジストリタグのロードに関する問題が解決されました。[Edge-922]

System

  1. ソフトウエアの更新では、関連するファイルのみが表示されます。[Edge-801]
  2. ソフトウエアの更新により、アップグレードが成功した後、関連するファイルが削除され、領域が再利用されます。[Edge-821]
  3. Backup/Restore機能が改善されました。[Edge-907、Edge-893、Edge-855]
  4. カーネル内の追加デバイス(USB-to-serial、HIDRAW)のサポートを有効にしました。[Edge-913]
  5. シリアルケーブル接続時の不具合が改善されました。[Edge-890]
  6. 最初の起動時にホスト名が設定されます。[Edge-889]

ターミナルユーザインターフェース(TUI)

  1. ターミナルユーザインターフェイス(TUI)は、シリアル回線を介して機能するようになりました。[Edge-902、Edge-894]
  2. Info、Setup、Wlanの新しい画面が追加されました。[Edge-828、Edge-867、EDGE-948]
  3. 新しい設定には、国、DNS、時刻、パスワード変更、言語セレクタが含まれます。[Edge-876、Edge-877、EDGE-878、EDGE-885]
  4. Ethernetの設定できるようになりました。[Edge-868]
  5. LoopCloudの有効化/無効化が追加されました。[Edge-879]
  6. ライセンスの有効化/無効化が追加されました。[Edge-880]
  7. リブート/シャットダウンが追加されました。[Edge-881]
  8. ログイン認証が追加されました。[Edge-884]

既知の問題

  1. ターミナルユーザインターフェイス(TUI)メニューから手動で時刻を設定しても、時刻が反映されません。

Alert通知

このalert設定は、LoopEdgeからLoopCloudへ渡ってきたデータを判定してEmailへalert通知させるサンプルです。

設定は、LoopCloudとLoopEdge両方に行う必要があります。

※設定が完了するとEmailによる通知がされますので、試した後は、必ず動作の停止をしてください。

  • LoopCloud側への設定
    LoopEdgeとの接続口になるModelを作成します。
    アラート通知(Email)の設定を行います。
  • LoopEdge側への設定
    LoopCloudとの接続設定やFlowへの設定を行います。

LoopCloud側への設定

1.LoopEdgeとの接続口になるModelを作成します。

ナビゲーションパネルのConfiguration-ModelsからModelを新規作成します。

「MQTT plain TCP connection Parameters」を選択して、SAVEボタンを押下します。
ナビゲーションパネルのDevuce Mgmt-Devicesを開き、右上部Singleを押下します。
先ほど作成したModelを選択します。
Model内は自動的に値が設定されたConfigが表示されます。
そのままCONTINUEボタンを押下します。
このModelの設定が記述されているJSONファイルが自動的にダウンロードされます。
このJSONはLoopEdge側への設定で使用します。

1-2.alert通知設定を行います。

ナビゲーションパネルのAlertsを選択します。
Action Listの右上部の+ボタンを押下します。
Add action画面にて、以下の値を設定してSAVEボタンを押下します。

・Action Template にEmailを設定
・Action Nameに「test action」を設定(任意の名称)
・Enter email 通知先のメールアドレス

 

Trigger Listの右上部の+ボタンを押下します。
Edit trigger画面のTRIGGERタブに以下の値を設定します。

ROULESタブを選択して、以下の値を設定し、SAVEボタンを押下します。

・Nameに「test Trigger」を設定(任意の名称)
・Activeチェックボックスをオンに指定
・Action Listに「test action」を設定
・Device Tag Listに「alert_tag1」を設定
・Subjectに「alert mail」(任意の件名)を設定
・Messageに「Warning! Check the alert.」(任意のメッセージ)を設定

2.LoopEdge側への設定

  2-1.LoopCloudとの接続設定を作成します。

DataHubを開き、画面上部のCloudConnectorsにて+ボタンを押下します。
Add Connector画面にてUpload JSONボタンを押下し、1-5のJSONファイルを読み込みます。
Name欄に任意の名前を設定し、Createボタンを押下します。

2-2.Flowのノードへ設定するTopicsを作成します。

DetaHubを開き、画面下部のTopicsにて+ボタンを押下します。
CloudConnectorsに作成した2-1で作成した接続先を設定し、Createボタンを押下します。

2-3.LoopFlowsへの設定

各ノードの説明

(1)Start(inject node
一定間隔で当該フローを実行するためのノードです。
手動で実行したい場合や一定間隔で当該フローを実行したい場合に使用するノードですので、PLC機器からのデータが接続されるような場合は不要です。
15秒間隔で実行するように設定しています。

(2)Create : Dummy data(function node
Demo動作用の温度のダミーデータを作成するためのノードです。
PLC機器からのデータが接続されるような場合は不要です。
温度のダミーデータを作成するコードを記述しています。

(3)Change : format1(function node
Create : Dummy dataノードにて作成した温度のダミーデータをLoopCloud側が認識できる書式へ変換するためのノードです。

(4)Change : Format2(json node
Create : Dummy dataノードにて作成した温度のダミーデータをLoopCloud側が認識できる書式へ変換するためのノードです。

(5)Connect : to LoopCloud(Datahub Publish node
作成したデータを指定したTopicへ保存します。
ノードの設定には、2-2で指定した名前を設定します。仮で「to_LoopCloud」と設定しています。

(6)Dump : data(debug node
受け取ったデータをdebug tabに出力します。

フロー設定
[{"id":"89b5debf.49fbf","type":"tab","label":"to LoopCloud_data"},{"id":"dfe622c7.b37e2","type":"inject","z":"89b5debf.49fbf","name":"Start","topic":"","payload":"","payloadType":"date","repeat":"15","crontab":"","once":false,"x":120,"y":120,"wires":[["10c962b8.5eba9d"]]},{"id":"4ebfb414.e0d09c","type":"debug","z":"89b5debf.49fbf","name":"Dump:data","active":true,"console":"false","complete":"payload","x":640,"y":280,"wires":[]},{"id":"10c962b8.5eba9d","type":"function","z":"89b5debf.49fbf","name":"Create:dummy data","func":"// temperature\ntemp_max = 28;\ntemp_min = 26;\ntemp = Math.random() * (temp_max - temp_min) + temp_min;\nmsg.payload = Math.floor(temp * 100) / 100;\n\n\nreturn [msg];","outputs":1,"noerr":0,"x":225,"y":120,"wires":[["9006a8a1.3bf3f8"]]},{"id":"9006a8a1.3bf3f8","type":"function","z":"89b5debf.49fbf","name":"Change:format1","func":"msg.payload= {\n \"timestamp\": 0,\n \"values\": [{\n\n \"objectId\":3300,\n \"instanceId\":\"0\",\n \"resourceId\":5700,\n \"datatype\":\"Float\",\n \"value\":msg.payload\n }]\n};\n return msg;","outputs":1,"noerr":0,"x":365,"y":120,"wires":[["24bab41f.f864ac"]]},{"id":"427a608d.6d52d","type":"Datahub Publish","z":"89b5debf.49fbf","name":"Connect:to LoopCloud","natc":"e300cf69.f432","topicname":"to_LoopCloud","x":640,"y":120,"wires":[]},{"id":"24bab41f.f864ac","type":"json","z":"89b5debf.49fbf","name":"Change:format2","x":505,"y":120,"wires":[["427a608d.6d52d","4ebfb414.e0d09c"]]},{"id":"e300cf69.f432","type":"Datahub Connect","z":"","ipadd":"127.0.0.1","port":"4222"}]

 

Flowサンプル : 温度/湿度

このFlowは疑似的に温度・湿度のデータを生成して、LoopEdge上で簡易に可視化(チャートグラフやゲージ)させるサンプルです。

各ノードの説明

(1)Start Temp/Humi(inject node
一定間隔で当該フローを実行するためのノードです。
手動で実行したい場合や一定間隔で当該フローを実行したい場合に使用するノードですので、PLC機器からのデータが接続されるような場合は不要です。
15秒間隔で実行するように設定しています。

(2)Create:Temp/Humi(funcion node
Demo動作用の温度/湿度のダミーデータを作成するためのノードです。
PLC機器からのデータが接続されるような場合は不要です。
温度と湿度のダミーデータを作成するコードを記述しています。

(3)Chart Graph(chart node
Create:Temp/Humiノードにて作成した温度のダミーデータをチャートグラフ表示させるためのノードです。チャートグラフを表示するダッシュボードの指定やグラフの種類などを設定しています。

(4)Gauge(gauge node
Create:Temp/Humiノードにて作成した湿度のダミーデータをゲージ表示させるためのノードです。ゲージを表示するダッシュボードの指定やゲージの種類などを設定しています。

(5)Dump:Temp/Humi(debug node
受け取ったデータをdebug tabに出力します。

フロー設定
[{"id":"1278b126.530fbf","type":"tab","label":"Demo : Temp/Humi"},{"id":"29c1c13f.71220e","type":"inject","z":"1278b126.530fbf","name":"Start Temp/Humi","topic":"","payload":"","payloadType":"date","repeat":"15","crontab":"","once":true,"x":120,"y":140,"wires":[["804023fb.bd1348"]]},{"id":"804023fb.bd1348","type":"function","z":"1278b126.530fbf","name":"Create : Temp/Humi","func":"// temperature\ntemp_max = 28;\ntemp_min = 26;\ntemp = Math.random() * (temp_max - temp_min) + temp_min;\nmsg.payload = Math.floor(temp * 100) / 100;\n\n// humidity\nvar humidt = {};\nhumi_max = 50;\nhumi_min = 38;\nhumi = Math.random() * (humi_max - humi_min) + humi_min; \nhumidt.payload = Math.floor(humi * 100) / 100;\n\nreturn [msg, humidt];\n","outputs":"2","noerr":0,"x":225,"y":140,"wires":[["b6beacab.133fd8","3bf34f22.058ac"],["3795e938.d4ca66","3bf34f22.058ac"]]},{"id":"b6beacab.133fd8","type":"ui_chart","z":"1278b126.530fbf","name":"Chart Graph","group":"18784aaf.af48dd","order":0,"width":"6","height":"6","label":"Temperature (Sample)","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Temperature (Sample)","dot":true,"ymin":"20","ymax":"40","removeOlder":"10","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#31b0cc","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"x":340,"y":80,"wires":[[],[]]},{"id":"3bf34f22.058ac","type":"debug","z":"1278b126.530fbf","name":"Dump : Temp/Humi","active":true,"console":"false","complete":"payload","x":440,"y":140,"wires":[]},{"id":"3795e938.d4ca66","type":"ui_gauge","z":"1278b126.530fbf","name":"Gauge ","group":"18784aaf.af48dd","order":0,"width":"6","height":"6","gtype":"gage","title":"Humidity (Sample)","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":340,"y":200,"wires":[]},{"id":"18784aaf.af48dd","type":"ui_group","z":"","name":"Dashboard Group","tab":"e0eeb339.b8c5c8","order":1,"disp":true,"width":"12","collapse":false},{"id":"e0eeb339.b8c5c8","type":"ui_tab","z":"","name":"Sample Dashboard","icon":"dashboard","order":1}]