コンテンツにスキップ

6. トラブルシュート#

本章では、トラブル発生時の対処方法について説明します。

6.1 異常発生時共通の手順#

本節では、SpeeDBee Synapseで問題が発生した際の、基本的な対処方法を説明します。

  1. ステータスランプが赤・黄になっているコンポーネントを右クリックします。

  2. 「ステータスタイムライン」を選択します。

  3. タイムラインに表示されているエラーコードを確認します。

  4. 本マニュアルの右上の検索ボックスから、タイムラインに表示されていたエラーコードを検索します。

  5. エラーコードの概要を把握し、処置方法を実施します。

  6. 処置方法を実施してもエラーが解消しない場合、「製造元に問い合わせ」を参考に、製造元に問い合わせください。

6.2 よくあるトラブルとその対処方法#

ここでは、よくあるトラブルとその対処方法について解説します。

6.2.1 時刻設定に関する問題と対処方法#

SpeeDBee Synapseの稼働しているマシンと使用ブラウザの時刻が大幅にずれている場合、画面上部に次の警告が表示されます。

この警告が表示されている場合、SpeeDBee Synapseは、動作中にエラーが発生します。
これを回避するには、該当環境でシステム時刻を設定する方法がある場合は、設定内容をPC時刻の設定と合わせてください。詳細は当該環境のマニュアルをご確認ください。

6.2.1.1 SpeeDBee SynapseがWindowsで動作している場合#

Windowsの時刻設定は、下記の手順で設定できます。

  1. SpeeDBee Synapseの稼働しているマシンで、Synapseを停止します。停止方法については、ここを参照してください。

  2. タスクバーの右端に表示されている日付と時刻を右クリックし、「日時を調整する」をクリックします。

    PCがインターネットに接続している場合は次の手順に進み、インターネットに接続していない場合は手順4から行ってください。

  3. 「日付と時刻」画面が表示されます。PCがインターネットに接続している場合、「時刻を自動的に設定する」をオンにして1分待ちます。その後手順6へ進んでください。

    もし時刻の自動同期ができなかったり、自動同期を行っても問題が解消しない場合、PCがインターネットに接続されていない場合は、手動で時刻を設定する必要があります。次の手順に進んでください。

  4. 「時刻を自動的に設定する」をオフにして「日付と時刻を手動で設定する」の変更ボタンを選択すると、時刻の設定メニューが開きます。

  5. メニューで現在の時刻を設定し、「変更」ボタンを選択して1分待ちます。

  6. SpeeDBee Synapseの稼働しているマシンで、Synapseを起動します。起動方法については、ここを参照してください。

  7. 時刻が正しく設定されると、SpeeDBee Synapseの画面上部で警告が表示されなくなります。

6.2.1.2 SpeeDBee SynapseがLinuxで動作している場合#

Linuxの時刻設定は、下記の手順で設定できます。

Data Flow Controller版では、Data Flow ControllerのWebUIで設定できます。

  1. SpeeDBee Synapseの稼働しているマシンで、Synapseを停止します。停止方法については、ここを参照してください。

  2. Linuxの現在の時刻を確認します。下記は現在システムに設定されている時刻を確認するコマンドです。

    $ timedatectl
    

    時刻が表示された結果例は以下の通りです。「Local time」が現在設定されているシステム時刻になります。時刻がずれている場合は、設定を変更する必要があります。

  3. 必要に応じて、タイムゾーンを正しい地域へ変更します。この設定は任意となるため、タイムゾーンが一致しているか、設定が不要な場合はこの手順を行わず、次の手順へ進んでください。
    例えばSpeeDBee Synapseが稼働しているマシンをJSTへ変更する場合、下記のコマンドを使用します。

    $ sudo timedatectl set-timezone Asia/Tokyo
    

    設定したいタイムゾーンがJST以外の場合、下記のコマンドで使用できるタイムゾーンを確認できます。

    $ timedatectl list-timezones
    

    タイムゾーンが変更された結果例は以下の通りです。手順1のコマンドで設定値を確認出来ます。

    PCがインターネットに接続している場合は次の手順へ進み、インターネットに接続していない場合は手順5へ進んでください。

  4. PCがインターネットに接続している場合、NTP Serverを有効にします。下記のコマンドを使用して設定後、1分待ち手順7へ進んでください。

    $  sudo timedatectl set-ntp yes
    

    NTP Serverが有効化した結果例は以下の通りです。手順1のコマンドで設定値を確認出来ます。

    OSがBlackBear以外の場合

    OSがBlackBearの場合

    もしもNTP serverの同期を行っても問題が解消しない場合や、PCがインターネットに接続されていない場合は、手動で時刻を設定する必要があります。次の手順に進んでください。

  5. 時刻を手動で設定するために、NTP Serverを無効にします。下記のコマンドを使用して設定出来ます。

    $ sudo timedatectl set-ntp no
    

    NTP Serverが無効化した結果例は以下の通りです。手順1のコマンドで設定値を確認出来ます。

    OSがBlackBear以外の場合

    OSがBlackBearの場合

  6. 次に日付と時刻を変更します。下記は2025年3月12日 16時03分20秒に設定する場合の例です。実際に使用する際は、日付と時刻を設定したい値に直して利用します。設定後1分待ちます。

    $ sudo date -s "2025-3-12 16:03:20"
    

    日付と時刻が変更された結果例は以下の通りです。手順1のコマンドで設定値を確認出来ます。

  7. SpeeDBee Synapseの稼働しているマシンで、Synapseを起動します。起動方法については、ここを参照してください。

  8. 時刻が正しく設定されると、SpeeDBee Synapseの画面上部で警告が表示されなくなります。

6.2.1.3 時刻設定に関する注意事項#

本項で示した対処に従って操作することで、時刻設定のトラブルは回避できます。 しかし、インターネットに接続されていないマシンやRTC(Real Time Clock)が搭載されていないマシンでは再起動後に同じ設定を行う必要があります。 そのため、次のいずれかの検討を推奨します。

  • インターネットへ接続して時刻同期を正しく行う(セキュリティ上問題がない場合に限る)
  • 稼働マシンのLAN内にNTP Serverを立ち上げ自動同期する
  • RTCモジュールにより時刻ずれを防ぐ

6.2.2 PLCコレクタに接続できない場合の対処方法#

PLCコレクタに接続できない場合、コンポーネントに黄色のステータスランプが表示され、ステータスタイムラインにNETWORK_TIMEOUTが表示されます。
ステータス確認方法は、ここを参照してください。

6.2.2.1 IPアドレスの確認#

使用しているPLCのIPアドレスを確認します。

確認できる機器について

この章の内容は、SpeeDBee Synapseが稼働しているデバイスで行う必要はありません。お使いのSpeeDBee SynapseのWebUIを閲覧しているPCでも実行可能です。
しかし、SpeeDBee Synapseが稼働している機器と同じネットワーク内のPCから実施したほうが確実になります。
なお、Data Flow Controller版においてはData Flow ControllerのWebUIで設定できます。

  1. ネットワークに接続しているPCでWindowsはPowerShell(コマンドプロンプトでも可)を開き、Linuxはターミナル上から次のコマンドを実行します。

    PS >ping 対象PLCのIPアドレス
    
    • 成功画面
    • 失敗画面
    $ ping 対象PLCのIPアドレス
    

    ※Linuxは[ctrl]+[C]を入力するまで、pingを送り続けます。

    • 成功画面
    • 失敗画面

    pingの疎通が確認できなかった場合は、ご利用のPLC側の設定を確認してください。

6.2.2.2 ポートの確認#

使用しているPLCのポート番号を確認します。

確認できる機器について

この章の内容は、SpeeDBee Synapseが稼働しているデバイスで行う必要はありません。お使いのSpeeDBee SynapseのWebUIを閲覧しているPCでも実行可能です。
しかし、SpeeDBee Synapseが稼働している機器と同じネットワーク内のPCから実施したほうが確実になります。

  1. ネットワークに接続しているPCでWindowsはPowerShell(コマンドプロンプトでも可)を開き、Linuxはターミナル上から次のコマンドを実行します。

    PS >Test-NetConnection 対象PLCのIPアドレス -Port 対象PLCのポート番号
    
    • 該当のポートが開いている時の画面

    • 該当のポートが開いていない時の画面

    $ nc -zv 対象PLCのIPアドレス 対象PLCのポート番号
    
    • 該当のポートが開いている時の画面

    • 該当のポートが開いていない時の画面

    ポートが開いていることを確認できなかった場合は、ご利用のPLC側の設定を確認してください。

6.2.2.3 PLC側の設定#

PLCのIPアドレス、ポートの設定方法については、ご利用のPLCの取扱説明書などを確認してください。

6.3 異常が発生した場合に検知する方法#

ここでは、コンポーネントで異常が発生した場合に検知を行う方法を解説します。

6.3.1 特定のコンポーネントで異常が発生した場合に検知する方法#

特定のコンポーネントで異常が発生したときに、メールを送信してお知らせする方法を解説します。

6.3.1.1 イベントデータの設定#

検知対象コンポーネントから出力されるerrors_run_statusの値が、正常や停止以外の値の時、イベントデータが登録されるよう設定します。コンポーネントステータスが警告、エラーの場合にメール通知を行います。

  1. エラーを検知したいコンポーネントが稼働しているパネルを開き、Edit ModeでComponentBase -> Logic -> イベントデータをパネル上へドラッグアンドドロップします。

  2. 入力ポートの接続先メニューが開きます。今回はシステムポートに接続するため、「閉じる」を選択します。

  3. 任意の名称を入力します。今回は例として「PLC状態監視」という名前にします。

  4. ゴミ箱のマークを選択して、データを削除します。

  5. 「保存」を選択します。

  6. イベントデータを検知したいコンポーネントのシステムポートへ接続します。今回は例としてPLCコレクタにイベントデータを接続します。

  7. イベントデータの設定メニューを開きます。

  8. イベント条件を設定します。設定方法に「データ定義を受信して設定する」を選択します。データ名を「errors_run_status」、トリガ名を「trigger」、条件種別を「True」、条件式を「$VALUE >= 2」で設定します。
    そして、同一イベントを無視する時間(秒)を「300」に設定します。

    メール送信に関する注意

    この設定では、5分(300秒)経過しても、異常が続く限りメールが常に送信されます。 通知量が膨大になる事があるため注意してください。 異常が発生したタイミングで一度だけメール送信する場合は、条件種別を「Raise」に設定します。

  9. 「保存」を選択します。

  10. イベントデータを起動します。

    これでイベントデータの設定が完了しました。

6.3.1.2 メール送信の設定#

イベントデータから受け取った値を、メールで送信するように設定します。
今回はgmailで送信する場合の設定を解説します。使用できるgmailアカウントを用意し、二段階認証を設定してアプリパスワードを作成しておいてください。

  1. エラーを検知したいコンポーネントが稼働しているパネルを開き、Edit ModeでComponentBase -> Action -> メール送信をパネル上へドラッグアンドドロップします。

  2. 必要な設定を行います。gmailの場合はSMTPサーバーが「smtp.gmail.com」、ポート (TLS)が「587」となります。SMTPパスワードには、作成したアプリパスワードを入力してください。

  3. 「保存」を選択します。

  4. メール送信をイベントデータへ接続し、コンポーネントを起動します。

    これでメール送信の設定が完了しました。

    実際にコンポーネントで異常が発生すると、設定したメールアカウントにデータが送信されます。以下は受け取ったメールの例です。

6.3.2 Synapse内のいずれかのコンポーネントで異常が発生した場合に検知する方法#

いずれかのコンポーネントで異常が発生したときに、メールを送信してお知らせする方法を解説します。

6.3.2.1 イベントデータの設定#

エラーマネージャから出力される「latest_error_component_count」と「latest_warning_component_count」の値が増えた時、イベントデータが登録されるよう設定します。Synapse内でいずれかのコンポーネントステータスが警告、またはエラーの場合にメール通知を行います。

  1. Edit Modeでシステムパネルを開き、エラーマネージャを起動します。

  2. ComponentBase -> Logic -> イベントデータをパネル上へドラッグアンドドロップします。

  3. 入力ポートの接続先メニューが開きます。errormanagerにチェックを入れ、「接続」を選択します。

  4. 任意の名称を入力した後、イベント条件を設定して「保存」を選択します。イベント条件は下記条件①②を設定したコンポーネントを、個々に作成します。

    同一イベントを無視する時間(秒)「300」、データ名「latest_error_component_count」、トリガ名「trigger1」、条件種別「True」、条件式「$VALUE > 0」

    同一イベントを無視する時間(秒)「300」、データ名「latest_warning_component_count」、トリガ名「trigger2」、条件種別「True」、条件式「$VALUE > 0」

    メール送信に関する注意

    この設定では、5分(300秒)経過しても、異常が続く限りメールが常に送信されます。 通知量が膨大になる事があるため注意してください。 異常が発生したタイミングで一度だけメール送信する場合は、条件種別を「Raise」に設定します。

  5. イベントデータを起動します。

    これでイベントデータの設定が完了しました。

6.3.2.2 メール送信の設定#

イベントデータから受け取った値を、メールで送信するように設定します。
ここと同じく、gmailで送信する場合の設定を解説します。使用できるgmailアカウントを用意し、二段階認証を設定してアプリパスワードを作成しておいてください。

  1. システムパネルを開き、Edit ModeでComponentBase -> Action -> メール送信をパネル上へドラッグアンドドロップします。

  2. 必要な設定を行います。gmailの場合はSMTPサーバーが「smtp.gmail.com」、ポート (TLS)が「587」となります。SMTPパスワードには、作成したアプリパスワードを入力してください。

  3. 「保存」を選択します。

  4. 同じ手順でメール送信コンポーネントをもう一つ作成します。その後、メール送信コンポーネントをそれぞれのイベントデータへ接続し、コンポーネントを起動します。

    これでメール送信の設定が完了しました。

    実際にいずれかのコンポーネントで異常が発生すると、設定したメールアカウントにデータが送信されます。以下は受け取ったメールの例です。

6.3.3 電断などにより時系列データベースのデータ欠損を検知する方法#

Synapseでは、稼働マシンの電断により内部で使用している時系列データベースに欠損が発生すると、コアインターナルは、次の起動時にその異常を警告状態として登録します。
システムポートでこの情報をとらえることで、データ欠損があった場合にメール通知することが可能です。
ここでは、その手順を解説します。

電断によるデータ欠損に関する注意

電断によるデータ欠損は検知可能ですが、データを回復することはできないため、ご注意ください。
あくまで、一部のデータ保存ができなかったことを検知する機能となります。

6.3.3.1 イベントデータの設定#

コアインターナルから出力されるerrors_run_statusの値が、正常や停止以外の値の時、イベントデータが登録されるよう設定します。ステータスランプが警告またはエラーの場合にメール通知を行い、電断を検知できます。

  1. システムパネルを開き、Edit ModeでComponentBase -> Logic -> イベントデータをパネル上へドラッグアンドドロップします。

  2. 入力ポートの接続先メニューが開きます。今回はシステムポートに接続するため、「閉じる」を選択します。

  3. 任意の名称を入力します。今回は例として「コア状態監視」という名前にします。

  4. ゴミ箱のマークを選択して、データを削除します。

  5. 「保存」を選択します。

  6. イベントデータをコアインターナルのシステムポートへ接続します。

  7. イベントデータの設定メニューを開きます。

  8. イベント条件を設定します。設定方法に「データ定義を受信して設定する」を選択します。データ名を「errors_run_status」、トリガ名を「trigger」、条件種別を「True」、条件式を「$VALUE >= 2」で設定します。
    そして、同一イベントを無視する時間(秒)を「300」に設定します。

  9. 「保存」を選択します。

  10. イベントデータを起動します。

    これでイベントデータの設定が完了しました。

6.3.3.2 メール送信の設定#

イベントデータから受け取った値を、メールで送信するように設定します。

  1. システムパネルを開き、Edit ModeでComponentBase -> Action -> メール送信をパネル上へドラッグアンドドロップします。

  2. 必要な設定を行います。gmailの場合はSMTPサーバーが「smtp.gmail.com」、ポート (TLS)が「587」となります。SMTPパスワードには、作成したアプリパスワードを入力してください。

  3. 「保存」を選択します。

  4. メール送信をイベントデータへ接続し、コンポーネントを起動します。

    これでメール送信の設定が完了しました。

    実際に電断が発生すると、設定したメールアカウントにデータが送信されます。以下は受け取ったメールの例です。