IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2025-9361データ保存システム、データ保存方法、およびデータ保存プログラム
<>
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図1
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図2
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図3
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図4
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図5
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図6
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図7
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図8
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図9
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図10
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図11
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図12
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図13
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図14
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図15
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図16
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図17
  • 特開-データ保存システム、データ保存方法、およびデータ保存プログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025009361
(43)【公開日】2025-01-20
(54)【発明の名称】データ保存システム、データ保存方法、およびデータ保存プログラム
(51)【国際特許分類】
   G06F 11/34 20060101AFI20250110BHJP
   G05B 19/042 20060101ALI20250110BHJP
【FI】
G06F11/34 176
G05B19/042
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023112314
(22)【出願日】2023-07-07
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】島村 純児
(72)【発明者】
【氏名】植田 貴雅
【テーマコード(参考)】
5B042
5H220
【Fターム(参考)】
5B042GA34
5B042MA08
5B042MA09
5B042MC08
5H220AA04
5H220AA05
5H220AA06
5H220BB09
5H220BB18
5H220FF01
5H220FF03
5H220FF05
5H220FF09
5H220HH01
5H220HH08
5H220HH09
5H220JJ02
5H220JJ12
5H220JJ22
5H220JJ26
5H220JJ34
5H220JJ51
5H220KK02
(57)【要約】
【課題】変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信する。
【解決手段】制御装置100は、変数データを収集する収集部と、保存トリガが発生した場合に、保存対象の変数データを変数データから抽出する第1抽出部と、保存対象の変数データを制御装置とネットワークを介さずに接続される外部ストレージ106Aに保存する保存処理部と、保存対象の変数データが外部ストレージ106Aに保存された後、保存対象の変数データをネットワークストレージ500に送信する送信部とを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
データ保存システムであって、
制御装置と、
ネットワークストレージとを備え、
前記制御装置は、
前記制御装置が管理する1以上の変数の変数データを収集する収集部と、
保存トリガが発生した場合に、前記保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを前記変数データから抽出する第1抽出部と、
前記保存対象の変数データを前記制御装置とネットワークを介さずに接続される外部ストレージに保存する保存処理部と、
前記保存対象の変数データが前記外部ストレージに保存された後、前記保存対象の変数データを前記ネットワークストレージに送信する送信部とを備える、データ保存システム。
【請求項2】
前記送信部は、前記保存対象の変数データの送信に失敗した場合に、前記保存対象の変数データを前記外部ストレージから取得して、前記保存対象の変数データを前記ネットワークストレージに再送する、請求項1に記載のデータ保存システム。
【請求項3】
前記制御装置は、前記保存対象の変数データの第1ハッシュ値を算出する第1算出部をさらに備え、
前記ネットワークストレージは、前記制御装置から受信した前記保存対象の変数データの第2ハッシュ値を算出する第2算出部を備え、
前記送信部は、前記第1ハッシュ値と前記第2ハッシュ値とが一致しない場合に、前記保存対象の変数データの送信に失敗したと判断する、請求項2に記載のデータ保存システム。
【請求項4】
前記制御装置は、前記保存対象の変数データの送信に所定回数以上失敗している場合にエラー信号を出力する出力部をさらに備える、請求項2または3に記載のデータ保存システム。
【請求項5】
前記送信部は、前記保存対象の変数データを暗号化して前記ネットワークストレージに送信する、請求項1~3のいずれか1項に記載のデータ保存システム。
【請求項6】
前記データ保存システムは、監視対象エリアを撮影するカメラをさらに備え、
前記カメラは、前記監視対象エリアを撮影した画像データを前記ネットワークストレージに送信し、
前記ネットワークストレージは、
前記保存トリガが発生した場合に、前記保存対象の期間における保存対象の画像データを前記画像データから抽出する第2抽出部と、
前記保存対象の変数データと前記保存対象の画像データとを時刻情報で関連付けて記憶する記憶部とを備える、請求項1~3のいずれか1項に記載のデータ保存システム。
【請求項7】
前記制御装置は、前記制御装置と前記カメラとの時刻合わせを行う調整部をさらに備える、請求項6に記載のデータ保存システム。
【請求項8】
前記調整部は、時刻合わせコマンドを前記カメラに送信し、
前記カメラは、前記時刻合わせコマンドを受信した場合に、レスポンスコマンドを前記制御装置に送信し、
前記調整部は、
前記レスポンスコマンドを受信した場合に、前記時刻合わせコマンドの送信時刻と前記レスポンスコマンドの受信時刻とに基づいて前記カメラに送信する補正時刻を算出し、
前記補正時刻を前記カメラに送信する、請求項7に記載のデータ保存システム。
【請求項9】
前記調整部は、
前記レスポンスコマンドを受信した場合に、前記時刻合わせコマンドの送信時刻と前記レスポンスコマンドの受信時刻とに基づいて前記制御装置と前記カメラとの間の通信遅延時間を算出し、
前記通信遅延時間に基づいて前記補正時刻を算出する、請求項8に記載のデータ保存システム。
【請求項10】
1以上のコンピュータによって実行されるデータ保存方法であって、
制御装置が管理する1以上の変数の変数データを収集することと、
保存トリガが発生した場合に、前記保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを前記変数データから抽出することと、
前記保存対象の変数データを前記制御装置とネットワークを介さずに接続される外部ストレージに保存することと、
前記保存対象の変数データが前記外部ストレージに保存された後、前記保存対象の変数データを前記ネットワークストレージに送信することとを備える、データ保存方法。
【請求項11】
請求項10に記載のデータ保存方法を1以上のコンピュータに実行させる、データ保存プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ保存システム、データ保存方法、およびデータ保存プログラムに関する。
【背景技術】
【0002】
製造現場等で使用される機器を制御する制御装置(例えば、PLC(Programmable Logic Controller)、産業用PC(Personal Computer)等)に関連する技術が提案されている。
【0003】
例えば、特開2019-128702号公報(特許文献1)は、PLCが生産設備を制御する際に取得したデータ(デバイス値)を高速かつリアルタイムに外部サーバ(例えば、FTP(File Transfer Protocol)サーバ、NAS(Network Attached Storage)、パーソナルコンピュータ)に転送するための方法を開示している。
【0004】
特開2020-13526号公報(特許文献2)および特開2021-36479号公報(特許文献3)は、PLCが生産設備を制御する際に取得したデータ(デバイス値)と、カメラが撮影した画像データとを、時刻情報で関連付けてメモリカードに保存することを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2019-128702号公報
【特許文献2】特開2020-13526号公報
【特許文献3】特開2021-36479号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
機器が設置されている現場(例えば、製造現場)の状況を監視するためには、当該機器を制御する制御装置が管理する1以上の変数の変数データを長時間記録する必要がある。特許文献2または3では、デバイス値(変数データ)と画像データとがメモリカードに保存されるが、一般的にメモリカードの容量は小さい。変数データと画像データとは、いずれも大容量のデータである。例えば、1週間分の変数データは1TBを超え、1週間分の動画データは151GBを超える。そのため、特許文献2または3に開示される方法では、長期間に亘る変数データの複数のログファイルを保存できない場合がある。また、特許文献1のようにデバイス値(変数データ)をNAS等のネットワークストレージに保存する場合には、通信異常等により変数データの送信に失敗する場合がある。
【0007】
本開示は、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することを一つの目的とする。
【課題を解決するための手段】
【0008】
本開示のある局面に従うデータ保存システムは、制御装置と、ネットワークストレージとを備える。制御装置は、制御装置が管理する1以上の変数の変数データを収集する収集部と、保存トリガが発生した場合に、保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを変数データから抽出する第1抽出部と、保存対象の変数データを制御装置とネットワークを介さずに接続される外部ストレージに保存する保存処理部と、保存対象の変数データが外部ストレージに保存された後、保存対象の変数データをネットワークストレージに送信する送信部とを備える。
【0009】
この構成によれば、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することができる。
【0010】
上述の開示において、好ましくは、送信部は、保存対象の変数データの送信に失敗した場合に、保存対象の変数データを外部ストレージから取得して、保存対象の変数データをネットワークストレージに再送する。
【0011】
この構成によれば、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することができる。
【0012】
上述の開示において、好ましくは、制御装置は、保存対象の変数データの第1ハッシュ値を算出する第1算出部をさらに備える。ネットワークストレージは、制御装置から受信した保存対象の変数データの第2ハッシュ値を算出する第2算出部を備える。送信部は、第1ハッシュ値と第2ハッシュ値とが一致しない場合に、保存対象の変数データの送信に失敗したと判断する。
【0013】
この構成によれば、変数データの送信に失敗したことを検知することができる。
【0014】
上述の開示において、好ましくは、制御装置は、保存対象の変数データの送信に所定回数以上失敗している場合にエラー信号を出力する出力部をさらに備える。
【0015】
この構成によれば、ユーザは変数データの送信に失敗したことを知ることができる。
【0016】
上述の開示において、好ましくは、送信部は、保存対象の変数データを暗号化してネットワークストレージに送信する。
【0017】
この構成によれば、変数データをセキュアにネットワークストレージに送信することができる。
【0018】
上述の開示において、好ましくは、データ保存システムは、監視対象エリアを撮影するカメラをさらに備える。カメラは、監視対象エリアを撮影した画像データをネットワークストレージに送信する。ネットワークストレージは、保存トリガが発生した場合に、保存対象の期間における保存対象の画像データを画像データから抽出する第2抽出部と、保存対象の変数データと保存対象の画像データとを時刻情報で関連付けて記憶する記憶部とを備える。
【0019】
この構成によれば、変数データおよび画像データを散逸なく、確実に保存することができる。
【0020】
上述の開示において、好ましくは、制御装置は、制御装置とカメラとの時刻合わせを行う調整部をさらに備える。
【0021】
この構成によれば、制御装置とカメラとの時刻を合わせることができる。
【0022】
上述の開示において、好ましくは、調整部は、時刻合わせコマンドをカメラに送信する。カメラは、時刻合わせコマンドを受信した場合に、レスポンスコマンドを制御装置に送信する。調整部は、レスポンスコマンドを受信した場合に、時刻合わせコマンドの送信時刻とレスポンスコマンドの受信時刻とに基づいてカメラに送信する補正時刻を算出し、補正時刻をカメラに送信する。
【0023】
この構成によれば、制御装置とカメラとの時刻を合わせることができる。
【0024】
上述の開示において、好ましくは、調整部は、レスポンスコマンドを受信した場合に、時刻合わせコマンドの送信時刻とレスポンスコマンドの受信時刻とに基づいて制御装置とカメラとの間の通信遅延時間を算出し、通信遅延時間に基づいて補正時刻を算出する。
【0025】
この構成によれば、制御装置とカメラとの時刻を合わせることができる。
【0026】
本開示の他の局面に従うデータ保存方法は、1以上のコンピュータによって実行される。当該データ保存方法は、制御装置が管理する1以上の変数の変数データを収集することと、保存トリガが発生した場合に、保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを変数データから抽出することと、保存対象の変数データを制御装置とネットワークを介さずに接続される外部ストレージに保存することと、保存対象の変数データが外部ストレージに保存された後、保存対象の変数データをネットワークストレージに送信することとを備える。
【0027】
この構成によれば、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することができる。
【0028】
本開示の他の局面に従うデータ保存プログラムは、上記データ保存方法を1以上のコンピュータに実行させる。
【0029】
この構成によれば、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することができる。
【発明の効果】
【0030】
本開示によれば、変数データをネットワークストレージに保存する場合に、変数データを確実にネットワークストレージに送信することができる。
【図面の簡単な説明】
【0031】
図1】本実施の形態におけるデータ保存システムを示す図である。
図2】本実施の形態における制御装置のハードウェア構成の一例を示す図である。
図3】本実施の形態におけるカメラのハードウェア構成の一例を示す図である。
図4】本実施の形態におけるNASのハードウェア構成の一例を示す図である。
図5】本実施の形態における制御装置で実行されるタスクの一例を示す図である。
図6】本実施の形態におけるデータ保存処理のうち制御装置からNASへ保存対象の変数データを送信する送信処理の概要を示す図である。
図7】本実施の形態における変数データの収集/保存方式のうち第1の方式を示す図である。
図8】本実施の形態における変数データの収集/保存方式のうち第2の方式を示す図である。
図9】本実施の形態における変数データの収集/保存条件を設定するための設定画面の一例を示す図である。
図10】本実施の形態におけるデータ保存処理のうちNASによる保存処理の概要を示す図である。
図11】本実施の形態におけるデータ保存処理のうち制御装置とカメラとの間で行われる時刻合わせ処理の概要を示す図である。
図12】本実施の形態における設定処理の手順を示すフローチャートである。
図13図6を参照して説明された本実施の形態における送信処理の手順の一部を示すフローチャートである。
図14図6を参照して説明された本実施の形態における送信処理の手順の残りの部分を示すフローチャートである。
図15】本実施の形態におけるカメラによる録画処理の手順を示すフローチャートである。
図16図10を参照して説明された本実施の形態におけるNASによる保存処理の手順を示すフローチャートである。
図17図11を参照して説明された本実施の形態における時刻合わせ処理の手順を示すフローチャートである。
図18】本実施の形態における設定変更処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0032】
以下、図面を参照しつつ、本開示に従う実施の形態および変形例について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される実施の形態および変形例は、適宜選択的に組み合わされてもよい。
【0033】
[実施の形態]
<A.適用例>
まず、本開示が適用される場面の一例について説明する。
【0034】
図1は、本実施の形態におけるデータ保存システムを示す図である。本実施の形態におけるデータ保存システム1は、制御装置100と、サポート装置200と、タッチパネル300と、カメラ400と、NAS(Network Attached Storage)500と、NTP(Network Time Protocol)サーバ600と、1以上のフィールド機器700とを備える。
【0035】
制御装置100と、サポート装置200と、タッチパネル300と、カメラ400と、NAS500と、NTPサーバ600とは、上位ネットワーク901を介して互いに接続される。上位ネットワーク901は、例えば、汎用的なEthernet(登録商標)である。なお、制御装置100とサポート装置200とは、USB(Universal Serial Bus)を介して互いに接続されてもよい。
【0036】
制御装置100は、フィールドネットワーク902を介して1以上のフィールド機器700と接続される。フィールドネットワーク902には、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
【0037】
制御装置100は、例えば、PLC(Programmable Logic Controller)、または、産業用PC(Personal Computer)等のコンピュータである。制御装置100は、予め作成されたユーザプログラムに従って1以上のフィールド機器700を制御する。1以上のフィールド機器700の各々は、生産設備または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、フィールドに設置される各種のセンサ、またはフィールドとの間で情報を遣り取りする入出力装置などを含む。
【0038】
図1に示す例では、1以上のフィールド機器700は、サーボモータドライバ701およびサーボモータ801を含むフィールド機器と、温度調節器702およびヒーター802を含むフィールド機器と、ロボットコントローラ703およびロボット803を含むフィールド機器とを含むが、これらに限られない。
【0039】
制御装置100は、1以上の変数を管理している。1以上の変数は、制御装置100の内部状態を示す1以上の内部状態変数と、1以上のフィールド機器700との間で遣り取りされる1以上の入出力変数とを含む。1以上の内部状態変数は、制御装置100が1以上のフィールド機器700を制御しているか否かを示す1以上の制御状態変数を含む。1以上の入出力変数は、制御装置100から1以上のフィールド機器700への指令値を示す1以上の指令変数と、1以上のフィールド機器700の状態値を示す1以上の現在値変数と、1以上のフィールド機器700の状態値を単位変換するための1以上の単位変換変数とのうち少なくとも1つを含む。制御装置100は、1以上の変数の変数データのうち保存対象の期間における保存対象の変数データをメモリカード106Aに保存する。その後、制御装置100は、保存対象の変数データをNAS500に送信する。保存対象の期間については、図7および図8を参照して、後述する。
【0040】
サポート装置200は、制御装置100が1以上のフィールド機器700を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ出力する機能、および、制御装置100上で実行されるユーザプログラムなどをオンラインで修正する機能、などを提供する。
【0041】
タッチパネル300は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力する。また、タッチパネル300は、制御装置100での演算結果などを表示する。
【0042】
カメラ400は、ネットワークカメラである。カメラ400は、フィールドに設置される。カメラ400は、1以上のフィールド機器700の少なくとも一部を含む監視対象エリアを撮影する。カメラ400は、監視対象エリアを撮影した画像データをNAS500に送信する。画像データは、静止画データでもよいし、動画データでもよい。また、画像データは、撮影時刻を示す撮影時刻情報を含む。
【0043】
NAS500は、本開示における「ネットワークストレージ」の一例である。NAS500は、大容量のデータを保存することができる。より具体的には、NAS500は、メモリカードおよび制御装置100のストレージのいずれよりも大容量のデータを保存することができる。NAS500は、カメラ400から送信されてきた画像データを保存する。さらに、NAS500は、画像データのうち保存対象の期間における保存対象の画像データを抽出し、当該保存対象の画像データと、制御装置100から送信されてきた保存対象の変数データとを時刻情報で関連付けて保存する。
【0044】
NTPサーバ600は、制御装置100からの要求に応じて、現在の時刻を制御装置100へ提供する。
【0045】
データ保存システム1では、制御装置100は、保存対象の変数データをメモリカード106Aに保存した後、保存対象の変数データをNAS500に送信する。そのため、データ保存システム1では、保存対象の変数データのNAS500への送信中に、当該保存対象の変数データの少なくとも一部が消失、破壊、または改ざんされた場合でも、制御装置100は、保存対象の変数データをメモリカード106Aから取得して、NAS500に再送することができる。したがって、データ保存システム1によれば、保存対象の変数データを確実にNAS500に送信することができる。
【0046】
<B.ハードウェア構成例>
次に、本実施の形態におけるデータ保存システム1を構成する装置のハードウェア構成例について説明する。
【0047】
(b1:制御装置100)
図2は、本実施の形態における制御装置のハードウェア構成の一例を示す図である。制御装置100は、例えば、プロセッサ101と、メモリ102と、ストレージ103と、上位ネットワークコントローラ104と、フィールドネットワークコントローラ105と、メモリカードインターフェイス106と、タイマ107と、時計108とを含む。
【0048】
プロセッサ101は、例えば、CPU(Central Processing Unit)である。プロセッサ101は、ストレージ103に保存されている制御プログラム113を読み出して、メモリ102に展開して実行する。
【0049】
メモリ102は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。メモリ102は、1以上の変数の変数データを一時的に記憶する。
【0050】
ストレージ103は、例えば、HDD(Hard Disc Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成される。
【0051】
ストレージ103は、制御プログラム113を記憶する。制御プログラム113は、システムプログラム114、ユーザプログラム118、異常検知プログラム120、収集プログラム121、送信プログラム122、および時刻管理プログラム123を含む。
【0052】
システムプログラム114は、制御装置100の基本的な機能を実現するためのOS(Operating System)115、スケジューラプログラム116、および入出力プログラム117を含む。
【0053】
スケジューラプログラム116は、制御プログラム113を構成する1つ以上のタスクあるいは1つ以上のプロセスの実行順序および実行タイミングを管理する機能を提供する。
【0054】
入出力プログラム117は、1以上のフィールド機器700から入力データ(例えば、現在値変数の変数データ、単位変換変数の変数データなど)を取得する機能を提供する。また、入出力プログラム117は、ユーザプログラム118の実行により算出された指令値(指令変数の変数データ)を対象のフィールド機器へ出力する機能を提供する。
【0055】
ユーザプログラム118は、制御演算機能を提供する。ユーザプログラム118は、1以上のフィールド機器700の各々に応じて任意に構成することができる。ユーザプログラム118は、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。図2に示す例では、ユーザプログラム118は、モーション演算119を含む。モーション演算119により、1以上のフィールド機器700からの入力データ(変数データ)、および、ユーザプログラム118に含まれる命令に基づいて、対象のフィールド機器への指令値が生成される。
【0056】
異常検知プログラム120は、1以上のフィールド機器700で異常が発生したか否かを判定する機能を提供する。
【0057】
収集プログラム121は、制御装置100が管理する1以上の変数の変数データを収集する機能を提供する。本開示において、収集とは、変数データをメモリ102内の所定の記憶領域に保存することである。メモリ102内の所定の記憶領域は、データバッファ161とリングバッファ162との少なくとも一方を含む(図6参照)。
【0058】
プロセッサ101が収集プログラム121を実行することにより、まず、制御装置100が管理する1以上の変数の変数データが、収集時刻を示す収集時刻情報と対応付けられて、メモリ102内のデータバッファ161に保存される。収集時刻とは、変数データがデータバッファ161に保存されるタイミングの時刻である。その後、データバッファ161に保存されている変数データのうち少なくとも一部の変数データが収集時刻情報と対応付けられてリングバッファ162に保存される。
【0059】
送信プログラム122は、保存トリガが発生した場合に、保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データをリングバッファ162に保存されている変数データから抽出し、保存対象の変数データをNAS500に送信する機能を提供する。保存トリガは、プロセッサ101が1以上のフィールド機器700で異常が発生したと判定した場合に発生する。
【0060】
時刻管理プログラム123は、現在の時刻をNTPサーバ600から取得して時計108を現在の時刻に合わせる機能と、制御装置100とカメラ400との時刻合わせを行う機能とを提供する。
【0061】
ストレージ103は、データ型定義データ124を記憶する。データ型定義データ124は、制御装置100が管理している1以上の変数の各々のデータ型を定義する。
【0062】
ストレージ103は、設定情報125を記憶する。設定情報125は、変数データの収集/保存条件、制御装置100のその他の設定情報、NAS500のIPアドレス、およびカメラ400のIPアドレスを含む。変数データの収集/保存条件は、変数データの収集/保存方式を含む。変数データの収集/保存方式には、第1の方式と第2の方式とがある。変数データの収集/保存方式が第1の方式である場合には、変数データの収集/保存条件は、トリガ前収集時間およびトリガ後収集時間をさらに含む。変数データの収集/保存方式が第2の方式である場合には変数データの収集/保存条件は、収集期間をさらに含む。第1の方式、第2の方式、トリガ前収集時間、トリガ後収集時間、および収集期間については、図7および図8を参照して後述する。設定情報125は、制御装置100の運転が開始される前に、サポート装置200またはタッチパネル300からストレージ103にダウンロードされる。
【0063】
上位ネットワークコントローラ104は、上位ネットワーク901を介して、上位ネットワーク901に接続された装置(サポート装置200、タッチパネル300、カメラ400、NAS500、NTPサーバ600など)とデータをやり取りする。
【0064】
フィールドネットワークコントローラ105は、フィールドネットワーク902を介して、1以上のフィールド機器700とデータをやり取りする。
【0065】
メモリカードインターフェイス106は、着脱可能なメモリカード106Aに対してデータを読み書きする。メモリカード106Aは、制御装置100とネットワーク(例えば、上位ネットワーク901、フィールドネットワーク902など)を介さずに接続される外部ストレージの一例である。
【0066】
タイマ107は、時間を計測するクロック回路またはカウンタ回路を含んで構成される。なお、タイマ107は、このような回路に限定されず、プロセッサ101が実行するソフトウェアモジュールにより構成されてもよい。
【0067】
時計108は、現在の時刻を示す。後述する時刻合わせ処理により、時計108は、カメラ400の時計406(図3参照)と同じ時刻を示す。
【0068】
(b2:カメラ400)
図3は、本実施の形態におけるカメラのハードウェア構成の一例を示す図である。カメラ400は、例えば、プロセッサ401と、メモリ402と、ストレージ403と、上位ネットワークコントローラ404と、撮像部405と、時計406とを含む。
【0069】
プロセッサ401は、例えば、CPUである。プロセッサ401は、ストレージ403に保存されている制御プログラム413を読み出して、メモリ402に展開して実行する。メモリ402は、DRAMまたはSRAMなどの揮発性記憶装置で構成される。
【0070】
ストレージ403は、例えば、HDD、SSD、またはフラッシュメモリなどの不揮発性記憶装置で構成される。
【0071】
ストレージ403は、制御プログラム413を記憶する。制御プログラム413は、システムプログラム414、および、録画プログラム415を含む。
【0072】
システムプログラム414は、カメラ400の基本的な機能を実現するためのOSを含む。録画プログラム415は、例えば、監視対象エリアを撮影し、当該監視対象エリアを撮影した画像データをNAS500に送信する機能を提供する。
【0073】
ストレージ403は、設定情報416を記憶する。設定情報416は、カメラ400の各種設定情報、および、NAS500のIPアドレスを含む。設定情報416は、制御装置100の運転が開始される前に、サポート装置200またはタッチパネル300からストレージ403にダウンロードされる。
【0074】
上位ネットワークコントローラ404は、上位ネットワーク901を介して、上位ネットワーク901に接続された装置(制御装置100、サポート装置200、タッチパネル300、NAS500など)とデータをやり取りする。
【0075】
撮像部405は、監視対象エリアを撮影し、撮影した画像データをプロセッサ401に出力する。
【0076】
時計406は、現在の時刻を示す。後述する時刻合わせ処理により、時計406は、制御装置100の時計108と同じ時刻を示す。
【0077】
(b3:NAS500)
図4は、本実施の形態におけるNASのハードウェア構成の一例を示す図である。NAS500は、例えば、プロセッサ501と、メモリ502と、ストレージ503と、上位ネットワークコントローラ504とを含む。
【0078】
プロセッサ501は、例えば、CPUである。プロセッサ501は、ストレージ503に保存されている制御プログラム513を読み出して、メモリ502に展開して実行する。メモリ502は、DRAMまたはSRAMなどの揮発性記憶装置で構成される。
【0079】
ストレージ503は、例えば、HDD、SSD、またはフラッシュメモリなどの不揮発性記憶装置で構成される。ストレージ503は、本開示における「記憶部」の一例である。
【0080】
ストレージ503は、制御プログラム513を記憶する。制御プログラム513は、システムプログラム514、および、ユーザプログラム515を含む。
【0081】
システムプログラム514は、NAS500の基本的な機能を実現するためのOSを含む。ユーザプログラム515は、例えば、保存対象の変数データと保存対象の画像データとを時刻情報で関連付けてストレージ503に保存する機能を提供する。
【0082】
ストレージ503は、設定情報516を記憶する。設定情報516は、NAS500の各種設定情報、および、変数データの収集/保存条件を含む。設定情報516は、制御装置100の運転が開始される前に、サポート装置200またはタッチパネル300からストレージ503にダウンロードされる。
【0083】
上位ネットワークコントローラ504は、上位ネットワーク901を介して、上位ネットワーク901に接続された装置(制御装置100、サポート装置200、タッチパネル300、カメラ400など)とデータをやり取りする。
【0084】
本開示における「データ保存プログラム」は、制御プログラム113および制御プログラム513を含み、制御プログラム413をさらに含んでもよい。
【0085】
<C.処理>
次に、本実施の形態におけるデータ保存システム1のデータ保存処理について説明する。データ保存処理とは、保存対象の変数データと保存対象の画像データとを時刻情報で関連付けてNAS500に保存する処理である。
【0086】
(c1:制御装置100で実行されるタスク)
図5は、本実施の形態における制御装置で実行されるタスクの一例を示す図である。制御装置100は、1以上のフィールド機器700のリアルタイム制御を実施するための制御タスクと、リアルタイム制御に関連する関連処理を実施するための関連処理タスクとを実行する。図5に示すプライマリ定周期タスク131、イベントタスク132、定周期タスク133、および定周期タスク134は、制御タスクの一例である。図5に示すシステムサービス135は、関連処理タスクの一例である。
【0087】
プライマリ定周期タスク131は、制御装置100において他のタスクに比べて最も高い優先度(最優先)で実行される処理を含む。プライマリ定周期タスク131は、制御周期に相当するプライマリ周期141毎に周期的に実行される。
【0088】
図5に示す「IO」は、I/Oリフレッシュ処理を示す。図5に示す「UPG」は、ユーザプログラム実行処理を示す。図5に示す「MC」は、モーション制御処理を示す。図5に示す「SMP」は、収集処理を示す。プライマリ定周期タスク131は、I/Oリフレッシュ処理、ユーザプログラム実行処理、モーション制御処理、および収集処理を含む。I/Oリフレッシュ処理は、プロセッサ101が入出力プログラム117を実行することにより実現される。I/Oリフレッシュ処理では、まず指令値が制御装置100から1以上のフィールド機器700へ出力される。その後、入力データ(変数データ)が1以上のフィールド機器700から制御装置100へ入力される。
【0089】
ユーザプログラム実行処理は、プロセッサ101がユーザプログラム118を実行する処理である。モーション制御処理は、プロセッサ101がモーション演算119を実行することにより実現される。
【0090】
収集処理は、プロセッサ101が収集プログラム121を実行することにより実現される処理のうち、制御装置100が管理する1以上の変数の変数データを収集時刻を示す収集時刻情報と対応付けてメモリ102内のデータバッファ161(図6参照)に保存する処理である。
【0091】
イベントタスク132は、プライマリ定周期タスク131に比べて低い優先度で実行される処理を含む。イベントタスク132は、ユーザプログラム実行処理を含む。イベントタスク132は、タスク実行条件が成立したタイミングで実行される。
【0092】
定周期タスク133は、イベントタスク132に比べて低い優先度で実行される処理を含む。定周期タスク133は、ユーザプログラム実行処理および収集処理を含む。定周期タスク133は、制御周期に相当するタスク周期143毎に周期的に実行される。
【0093】
定周期タスク134は、定周期タスク133に比べて低い優先度で実行される処理を含む。定周期タスク134は、ユーザプログラム実行処理および収集処理を含む。定周期タスク134は、制御周期に相当するタスク周期144毎に周期的に実行される。
【0094】
システムサービス135は、定周期タスク134よりも優先度の低い処理(図5に示す「SS」)を含む。システムサービス135において、例えば、プロセッサ101が収集プログラム121を実行することにより実現される処理のうち、データバッファ161に保存されている変数データのうち少なくとも一部の変数データを収集時刻情報と対応付けてリングバッファ162(図6参照)に保存する処理が実行される。
【0095】
(c2:制御装置100からNAS500への送信処理の概要)
図6は、本実施の形態におけるデータ保存処理のうち制御装置からNASへ保存対象の変数データを送信する送信処理の概要を示す図である。制御装置100は、収集部151と、第1抽出部152と、保存処理部153と、送信部154と、第1算出部155と、出力部156と、データバッファ161と、リングバッファ162とを含む。収集部151は、プロセッサ101が収集プログラム121を実行することにより実現される。第1抽出部152と、保存処理部153と、送信部154と、第1算出部155と、出力部156とは、プロセッサ101が送信プログラム122を実行することにより実現される。データバッファ161およびリングバッファ162はいずれも、メモリ102内に確保される記憶領域である。
【0096】
収集部151は、制御装置100が管理する1以上の変数の変数データを収集する。より具体的には、変数データの収集開始条件が成立した場合に、収集部151は、制御周期に従って収集処理を実行する。すなわち、収集部151は、制御装置100が管理する1以上の変数の変数データを収集時刻を示す収集時刻情報と対応付けてデータバッファ161に保存する。その後、システムサービス135(図5参照)において、収集部151は、データバッファ161に保存されている変数データのうち少なくとも一部の変数データを収集時刻情報と対応付けてリングバッファ162に保存する。
【0097】
変数データの収集/保存方式として、第1の方式が制御装置100に設定されている場合には、収集部151は、データバッファ161に保存されている変数データの全てを収集時刻情報と対応付けてリングバッファ162に保存する。一方、変数データの収集/保存方式として、第2の方式が制御装置100に設定されている場合には、収集部151は、データバッファ161に保存されている変数データのうち予め定められた収集期間に対応する変数データのみを収集時刻情報と対応付けてリングバッファ162に保存する。変数データの収集/保存方式は、変数データの収集/保存条件として、サポート装置200またはタッチパネル300を用いて予め制御装置100およびNAS500に設定される。
【0098】
第1抽出部152は、保存トリガが発生した場合に、保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データをリングバッファ162に保存されている変数データから抽出する。より具体的には、まず、第1抽出部152は、保存トリガが発生した場合に、ストレージ103に保存されている設定情報125のうち変数データの収集/保存条件に基づいて、保存対象の期間を決定する。次いで、第1抽出部152は、リングバッファ162に保存されている収集時刻情報を基に、保存対象の期間内の時刻を示す収集時刻情報に対応付けられている変数データを保存対象の変数データとしてリングバッファ162から抽出する。
【0099】
送信部154は、保存トリガが発生した場合に、保存対象の期間を特定可能な情報をNAS500に送信する。ここで、図7図9を参照して、変数データの収集/保存方式と、変数データの収集/保存条件の設定方法とについて説明する。
【0100】
図7は、本実施の形態における変数データの収集/保存方式のうち第1の方式を示す図である。第1の方式では、収集部151は、収集処理によりデータバッファ161に保存された変数データの全てを収集時刻情報と対応付けてリングバッファ162に保存する。また、第1の方式では、第1抽出部152は、保存トリガの発生前後の期間を保存対象の期間として決定する。
【0101】
より具体的には、第1の方式では、第1抽出部152は、保存トリガが発生したタイミングT0から第1所定時間前のタイミングt1から、保存トリガが発生したタイミングT0から第2所定時間後のタイミングt2までの期間を保存対象の期間として決定する。以下の説明において、タイミングt1からタイミングT0までの時間を「トリガ前収集時間」とも称し、タイミングT0からタイミングt2までの時間を「トリガ後収集時間」とも称する。
【0102】
第1の方式では、収集部151は、保存トリガが発生してから少なくともトリガ後収集時間が経過するまで、制御周期に従って収集処理を実行し、変数データを収集時刻情報と対応付けてデータバッファ161に保存する。トリガ前収集時間およびトリガ後収集時間は、変数データの収集/保存条件として、サポート装置200またはタッチパネル300を用いて予め制御装置100およびNAS500に設定される。第1の方式では、収集部151は、収集処理によりデータバッファ161に保存された変数データの全てを収集時刻情報と対応付けてリングバッファ162に保存する。第1の方式では、第1抽出部152は、タイミングt1からタイミングt2までの期間内の時刻を示す収集時刻情報に対応付けられている変数データを保存対象の変数データとしてリングバッファ162から抽出する。
【0103】
第1の方式では、保存トリガが発生した場合に送信部154がNAS500に送信する保存対象の期間を特定可能な情報は、保存トリガの発生時刻を含む。
【0104】
図8は、本実施の形態における変数データの収集/保存方式のうち第2の方式を示す図である。第2の方式では、収集部151は、収集処理によりデータバッファ161に保存された変数データのうち予め定められた収集期間に対応する変数データのみを収集時刻情報と対応付けてリングバッファ162に保存する。また、第2の方式では、第1抽出部152は、保存トリガの発生前の最新の収集期間を保存対象の期間として決定する。収集期間は、開始トリガが発生したタイミングt3,t5から、タイミングt4,t6までの期間である。収集期間は、変数データの収集/保存条件として、サポート装置200またはタッチパネル300を用いて予め制御装置100およびNAS500に設定される。
【0105】
例えば、製造ラインを流れてくるワークのプレス処理に30秒かかるが、トラブルが発生し得る期間は最初の20秒間であることが分かっている場合には、収集期間の開始トリガをワークのプレス処理の開始条件が成立したことに設定し、収集期間を20秒に設定し得る。このような設定により、リングバッファ162に保存される変数データがトラブルが発生し得る期間の変数データに限定されるため、トラブル発生時の変数データの参照がし易くなる。
【0106】
第2の方式では、第1抽出部152は、保存トリガが発生したタイミングT0より前の最新の収集期間(タイミングt5からタイミングt6までの期間)を保存対象の期間として決定する。第1抽出部152は、タイミングt5からタイミングt6までの期間内の時刻を示す収集時刻情報に対応付けられている変数データを保存対象の変数データとしてリングバッファ162から抽出する。
【0107】
第2の方式では、保存トリガが発生した場合に送信部154がNAS500に送信する保存対象の期間を特定可能な情報は、最新の収集期間の開始トリガが発生した時刻を含む。
【0108】
なお、第1の方式と第2の方式とのいずれにおいても、保存トリガが発生した場合に送信部154がNAS500に送信する保存対象の期間を特定可能な情報は、保存対象の期間を示す時刻(例えば、AA時BB分からAA時CC分まで)を含んでもよい。その場合には、変数データの収集/保存条件は、予め制御装置100にのみ設定されていればよく、NAS500に設定されていなくてもよい。
【0109】
図9は、本実施の形態における変数データの収集/保存条件を設定するための設定画面の一例を示す図である。設定画面G1は、サポート装置200またはタッチパネル300に表示され、ユーザにより操作される。設定画面G1は、変数データの収集/保存方式を選択するためのボタン11,12と、設定画面G1上で指定された変数データの収集/保存条件を制御装置100およびNAS500に反映させるためのボタン16とを含む。
【0110】
設定画面G1は、第1の方式のトリガ前収集時間を入力するための入力ボックス13と、第1の方式のトリガ後収集時間を入力するための入力ボックス14とをさらに含む。設定画面G1は、第2の方式の収集期間を入力するための入力ボックス15をさらに含む。
【0111】
ボタン11およびボタン16が選択された場合には制御装置100およびNAS500は、変数データの収集/保存方式として第1の方式を設定し、入力ボックス13に入力されている数値をトリガ前収集時間として設定し、入力ボックス14に入力されている数値をトリガ後収集時間として設定する。
【0112】
ボタン12およびボタン16が選択された場合には、制御装置100およびNAS500は、変数データの収集/保存方式として第2の方式を設定し、入力ボックス15に入力されている数値を収集期間として設定する。
【0113】
再び図6を参照して、第1抽出部152は、保存対象の変数データを保存処理部153へ出力する。保存処理部153は、第1抽出部152から保存対象の変数データを受信した場合に、当該保存対象の変数データをメモリカード106Aに保存する。保存処理部153は、保存対象の変数データをメモリカード106Aに保存した後、保存対象の変数データの送信指示を送信部154へ出力する。
【0114】
送信部154は、保存処理部153から送信指示を受信した場合に、保存対象の変数データをメモリカード106Aから取得する。送信部154は、保存対象の変数データを暗号キーを用いて暗号化し、暗号化された保存対象の変数データを第1算出部155へ出力する。
【0115】
第1算出部155は、暗号化された保存対象の変数データのハッシュ値を算出する。以下の説明において、第1算出部155により算出されたハッシュ値を「第1ハッシュ値」と称する。第1算出部155は、第1ハッシュ値を送信部154へ出力する。
【0116】
送信部154は、暗号化された保存対象の変数データをNAS500に送信する。すなわち、送信部154は、保存対象の変数データがメモリカード106Aに保存された後、保存対象の変数データをNAS500に送信する。
【0117】
送信部154は、NAS500にハッシュ値を問い合わせる。NAS500では、後述の第2算出部554(図10参照)により、制御装置100から受信した暗号化された保存対象の変数データのハッシュ値が算出される。以下の説明において、第2算出部554により算出されたハッシュ値を「第2ハッシュ値」と称する。第2算出部554は、第2ハッシュ値を制御装置100に送信する。
【0118】
送信部154は、第1ハッシュ値と第2ハッシュ値とが一致するか否かを判定する。第1ハッシュ値と第2ハッシュ値とが一致する場合には、送信部154は、保存対象の変数データの送信に成功したと判断する。一方、第1ハッシュ値と第2ハッシュ値とが一致しない場合には、制御装置100からNAS500に送信された保存対象の変数データのうち少なくとも一部が消失、破壊、または改ざんされていることが考えられる。そのため、第1ハッシュ値と第2ハッシュ値とが一致しない場合には、送信部154は、保存対象の変数データの送信に失敗したと判断する。
【0119】
送信部154は、保存対象の変数データの送信に成功した場合には、送信完了通知をNAS500に送信する。また、送信部154は、保存対象の変数データの送信に成功した場合には、メモリカード106A内の保存対象の変数データを削除する削除指示を保存処理部153へ出力する。保存処理部153は、削除指示を受信した場合に、メモリカード106A内の保存対象の変数データを削除する。
【0120】
送信部154は、保存対象の変数データの送信に失敗した場合には、保存対象の変数データをメモリカード106Aから取得して、保存対象の変数データをNAS500に再送する。保存対象の変数データがNAS500に再送される場合にも、上記と同様に、保存対象の変数データの暗号化、および、暗号化された保存対象の変数データのハッシュ値(第1ハッシュ値)の算出が行われる。保存対象の変数データの送信に第1所定回数以上失敗するまで、上記と同様の方法で、保存対象の変数データがNAS500に再送される。
【0121】
送信部154が保存対象の変数データの送信に第1所定回数以上失敗している場合に、出力部156は、エラー信号をタッチパネル300へ出力する。タッチパネル300は、エラー信号を受信した場合には、保存対象の変数データの送信に失敗したことを示す通知を表示する。なお、送信部154が保存対象の変数データの送信に第1所定回数以上失敗している場合に、出力部156は、エラー信号をサポート装置200に出力してもよい。
【0122】
(c3:NASによる保存処理の概要)
図10は、本実施の形態におけるデータ保存処理のうちNASによる保存処理の概要を示す図である。NAS500は、受信部551と、第2抽出部552と、保存処理部553と、第2算出部554と、ストレージ503とを含む。受信部551と、第2抽出部552と、保存処理部553と、第2算出部554とは、プロセッサ501がユーザプログラム515を実行することにより実現される。
【0123】
受信部551は、カメラ400から画像データを受信し、当該画像データをストレージ503に保存する。
【0124】
第2抽出部552は、保存トリガが発生した場合に、保存対象の期間における保存対象の画像データをストレージ503に保存されている画像データから抽出する。より具体的には、第2抽出部552は、保存対象の期間を特定可能な情報を制御装置100から受信した場合に保存トリガが発生したと判断する。第2抽出部552は、ストレージ503に保存されている変数データの収集/保存条件と、制御装置100から受信した保存対象の期間を特定可能な情報とに基づいて、保存対象の期間を特定する。
【0125】
変数データの収集/保存方式が第1の方式である場合には、第2抽出部552は、保存トリガの発生時刻からトリガ前収集時間だけ前の時刻から、保存トリガの発生時刻からトリガ後収集時間だけ後の時刻までの期間を、保存対象の期間として特定する。一方、変数データの収集/保存方式が第2の方式である場合には、第2抽出部552は、最新の収集期間の開始トリガが発生した時刻から、最新の収集期間の開始トリガが発生した時刻から収集期間だけ後の時刻までの期間を、保存対象の期間として特定する。第2抽出部552は、保存対象の期間内の時刻を示す撮影時刻情報を含む画像データを保存対象の画像データとしてストレージ503から抽出する。第2抽出部552は、保存対象の画像データを保存処理部553へ出力する。
【0126】
第2算出部554は、制御装置100から暗号化された保存対象の変数データを受信する。第2算出部554は、制御装置100からハッシュ値の問い合わせを受けた場合には、制御装置100から受信した暗号化された保存対象の変数データのハッシュ値(第2ハッシュ値)を算出する。第2算出部554は、第2ハッシュ値を制御装置100に送信し、暗号化された保存対象の変数データを保存処理部553へ出力する。
【0127】
保存処理部553は、制御装置100から送信完了通知を受信した場合には、第2算出部554から受信した暗号化された保存対象の変数データを復号キーを用いて復号する。保存処理部553は、復号された保存対象の変数データと、第2抽出部552から受信した保存対象の画像データとを時刻情報で関連付けてストレージ503に保存する。
【0128】
(c4:制御装置100とカメラ400との間で行われる時刻合わせ処理の概要)
図11は、本実施の形態におけるデータ保存処理のうち制御装置とカメラとの間で行われる時刻合わせ処理の概要を示す図である。制御装置100は、調整部157と、時計108とを含む。調整部157は、プロセッサ101が時刻管理プログラム123を実行することにより実現される。
【0129】
調整部157は、NTPサーバ600に現在の時刻を問い合わせる。調整部157は、NTPサーバ600から現在の時刻を受信し、時計108を現在の時刻に合わせる。また、調整部157は、制御装置100とカメラ400との時刻合わせを行う。
【0130】
より具体的には、調整部157は、時刻合わせコマンドをカメラ400に送信する。カメラ400は、時刻合わせコマンドを受信した場合に、レスポンスコマンドを制御装置100に送信する。調整部157は、レスポンスコマンドを受信した場合に、時刻合わせコマンドの送信時刻とレスポンスコマンドの受信時刻とに基づいてカメラ400に送信する補正時刻を算出する。調整部157は、補正時刻をカメラ400に送信する。カメラ400では、プロセッサ401が時計406を補正時刻に合わせる(図3参照)。
【0131】
より具体的には、調整部157は、レスポンスコマンドを受信した場合に、時刻合わせコマンドの送信時刻とレスポンスコマンドの受信時刻とに基づいて、制御装置100とカメラ400との間の往復遅延時間を算出する。往復遅延時間は、本開示における「通信遅延時間」の一例である。制御装置100とカメラ400との間の往復遅延時間は、以下の式1により算出される。
【0132】
(往復遅延時間)=(レスポンスコマンドの受信時刻)-(時刻合わせコマンドの送信時刻)・・・式1
【0133】
調整部157は、時計108から現在の時刻を取得し、現在の時刻と往復遅延時間とに基づいて補正時刻を算出する。補正時刻は、以下の式2により算出される。
【0134】
(補正時刻)=(現在の時刻)+(往復遅延時間/2)・・・式2
【0135】
調整部157は、カメラ400との間で時刻合わせコマンドおよびレスポンスコマンドの送受信を第2所定回数繰り返してもよい。その場合には、調整部157は、各回において往復遅延時間を算出し、第2所定回数分の往復遅延時間の平均値を補正時刻の算出に使用する。そのため、補正時刻の精度が上がる。
【0136】
(c5:設定処理の手順)
図12は、本実施の形態における設定処理の手順を示すフローチャートである。設定処理とは、制御装置100の運転が開始される前に制御装置100、NAS500、およびカメラ400に設定を行う処理である。
【0137】
ステップS1において、サポート装置200は、ユーザプログラム118およびユーザプログラム515の作成と、制御装置100の設定情報125、NAS500の設定情報516、およびカメラ400の設定情報416の受け付けとを行う。
【0138】
次のステップS2において、サポート装置200は、ユーザプログラム118、ユーザプログラム515、設定情報125、設定情報516、および設定情報416を対応する装置に送信する。より具体的には、サポート装置200は、ユーザプログラム118および設定情報125を制御装置100に送信する。サポート装置200は、ユーザプログラム515および設定情報516をNAS500に送信する。サポート装置200は、設定情報416をカメラ400に送信する。
【0139】
ステップS2の後のステップS3において、制御装置100は、ユーザプログラム118および設定情報125を受信する。ステップS4において、制御装置100は、設定情報125に基づいて設定を行う。
【0140】
ステップS2の後のステップS5おいて、NAS500は、ユーザプログラム515および設定情報516を受信する。ステップS6において、NAS500は、設定情報516に基づいて設定を行う。
【0141】
ステップS2の後のステップS7おいて、カメラ400は、設定情報416を受信する。ステップS8において、カメラ400は、設定情報416に基づいて設定を行う。
【0142】
ステップS4、S6、およびS8の後のステップS9において、制御装置100は、図11および図17に示す時刻合わせ処理を行う。ステップS9の後、設定処理が完了する。設定処理が完了した後、制御装置100は、運転を開始する。
【0143】
(c6:送信処理の手順)
図13は、図6を参照して説明された本実施の形態における送信処理の手順の一部を示すフローチャートである。図14は、図6を参照して説明された本実施の形態における送信処理の手順の残りの部分を示すフローチャートである。
【0144】
ステップS21において、プロセッサ101は、変数データの収集開始条件が成立したか否かを判定する。変数データの収集開始条件は、ユーザプログラム118によって規定されている。変数データの収集開始条件が成立した場合には(ステップS21においてYES)、プロセッサ101は、ステップS22およびステップS23へ処理を進める。一方、変数データの収集開始条件が成立していない場合には(ステップS21においてNO)、プロセッサ101は、ステップS21を繰り返す。
【0145】
ステップS22において、プロセッサ101は、制御装置100が管理する1以上の変数の変数データの収集を開始する。すなわち、プロセッサ101は、制御周期に従って収集処理を実行し、制御装置100が管理する1以上の変数の変数データを収集時刻を示す収集時刻情報と対応付けて、データバッファ161に保存する。その後、プロセッサ101は、変数データの収集/保存方式に基づいて、データバッファ161に保存されている変数データのうち少なくとも一部の変数データを収集時刻情報と対応付けてリングバッファ162に保存する。
【0146】
より具体的には、変数データの収集/保存方式が第1の方式である場合には、プロセッサ101は、収集処理を実行し、変数データを収集時刻情報と対応付けてデータバッファ161に保存する。その後、プロセッサ101は、収集処理によりデータバッファ161に保存された変数データの全てを収集時刻情報と対応付けてリングバッファ162に保存する。
【0147】
一方、変数データの収集/保存方式が第2の方式である場合には、プロセッサ101は、収集処理を実行し、変数データを収集時刻情報と対応付けてデータバッファ161に保存する。その後、プロセッサ101は、収集処理によりデータバッファ161に保存された変数データのうち予め定められた収集期間に対応する変数データのみを収集時刻情報と対応付けてリングバッファ162に保存する。
【0148】
ステップS23において、プロセッサ101は、録画開始コマンドをカメラ400に送信する。
【0149】
ステップS22の後のステップS24において、プロセッサ101は、保存トリガが発生したか否かを判定する。保存トリガが発生した場合には(ステップS24においてYES)、プロセッサ101は、ステップS25へ処理を進める。一方、保存トリガが発生していない場合には(ステップS24においてNO)、プロセッサ101は、ステップS24を繰り返す。
【0150】
ステップS25において、プロセッサ101は、変数データの収集/保存方式に基づいて、変数データの収集を終了する。より具体的には、変数データの収集/保存方式が第1の方式である場合には、プロセッサ101は、保存トリガが発生してからトリガ後収集時間が経過するまで、制御周期に従って収集処理を実行し、保存トリガが発生してから少なくともトリガ後収集時間が経過した後、変数データの収集を終了する。一方、変数データの収集/保存方式が第2の方式である場合には、保存トリガが発生した後、変数データの収集を終了する。
【0151】
ステップS25の後、プロセッサ101は、ステップS26およびステップS28へ処理を進める。
【0152】
ステップS26において、プロセッサ101は、変数データの収集/保存方式と保存トリガの発生時刻とに基づいて保存対象の期間を決定し、当該保存対象の期間における保存対象の変数データをリングバッファ162に保存されている変数データから抽出する。
【0153】
より具体的には、変数データの収集/保存方式が第1の方式である場合には、プロセッサ101は、保存トリガが発生したタイミングから第1所定時間前のタイミングから、保存トリガが発生したタイミングから第2所定時間後のタイミングまでの期間を保存対象の期間として決定する。一方、変数データの収集/保存方式が第2の方式である場合には、プロセッサ101は、保存トリガの発生前の最新の収集期間を保存対象の期間として決定する。プロセッサ101は、保存対象の期間内の時刻を示す収集時刻情報に対応付けられている変数データを保存対象の変数データとしてリングバッファ162から抽出する。
【0154】
次のステップS27において、プロセッサ101は、保存対象の変数データをメモリカード106Aに保存する。
【0155】
ステップS28において、プロセッサ101は、録画停止コマンドをカメラ400に送信する。
【0156】
次のステップS29において、プロセッサ101は、保存対象の期間を特定可能な情報をNAS500に送信する。
【0157】
ステップS27の後のステップS30において、プロセッサ101は、保存対象の変数データを暗号化し、暗号化された保存対象の変数データのハッシュ値(第1ハッシュ値)を算出する。
【0158】
次のステップS31において、プロセッサ101は、暗号化された保存対象の変数データをNAS500に送信する。
【0159】
次のステップS32において、プロセッサ101は、NAS500にハッシュ値を問い合わせる。
【0160】
次のステップS33において、プロセッサ101は、NAS500からハッシュ値(第2ハッシュ値)を受信し、第1ハッシュ値と第2ハッシュ値とが一致するか否かを判定する。第1ハッシュ値と第2ハッシュ値とが一致する場合には(ステップS33においてYES)、プロセッサ101は、ステップS34へ処理を進める。一方、第1ハッシュ値と第2ハッシュ値とが一致しない場合には、(ステップS33においてNO)、プロセッサ101は、ステップS36へ処理を進める。
【0161】
ステップS34において、プロセッサ101は、送信完了通知をNAS500に送信する。
【0162】
次のステップS35において、プロセッサ101は、メモリカード106A内の保存対象の変数データを削除する。
【0163】
ステップS36において、プロセッサ101は、保存対象の変数データの送信に第1所定回数以上失敗しているか否かを判定する。保存対象の変数データの送信に第1所定回数以上失敗している場合には(ステップS36においてYES)、プロセッサ101は、ステップS37へ処理を進める。一方、保存対象の変数データの送信に第1所定回数以上失敗していない場合には(ステップS36においてNO)、プロセッサ101は、ステップS38へ処理を進める。
【0164】
ステップS37において、プロセッサ101は、エラー信号をタッチパネル300へ出力する。
【0165】
ステップS38において、プロセッサ101は、保存対象の変数データをメモリカード106Aから取得する。ステップS38の後、プロセッサ101は、ステップS30へ処理を戻す。
【0166】
ステップS23、ステップS29、ステップS35、またはステップS37の後、送信処理が終了する。
【0167】
(c7:カメラ400による録画処理の手順)
図15は、本実施の形態におけるカメラによる録画処理の手順を示すフローチャートである。
【0168】
ステップS41において、カメラ400は、録画開始コマンドを受信したか否かを判定する。録画開始コマンドを受信した場合には(ステップS41においてYES)、カメラ400は、ステップS42へ処理を進める。一方、録画開始コマンドを受信していない場合には(ステップS41においてNO)、カメラ400は、ステップS41を繰り返す。
【0169】
ステップS42において、カメラ400は、監視対象エリアの撮影を開始し、監視対象エリアを撮影した画像データを所定の間隔でNAS500に送信する。
【0170】
次のステップS43において、カメラ400は、録画停止コマンドを受信したか否かを判定する。録画停止コマンドを受信した場合には(ステップS43においてYES)、カメラ400は、ステップS44へ処理を進める。一方、録画停止コマンドを受信していない場合には(ステップS43においてNO)、カメラ400は、ステップS43を繰り返す。
【0171】
ステップS44において、カメラ400は、監視対象エリアの撮影を終了する。ステップS44の後、録画処理が終了する。
【0172】
(c8:NAS500による保存処理の手順)
図16は、図10を参照して説明された本実施の形態におけるNASによる保存処理の手順を示すフローチャートである。
【0173】
ステップS51において、プロセッサ501は、カメラ400から画像データを受信し、当該画像データをストレージ503に保存する。
【0174】
次のステップS52において、プロセッサ501は、保存対象の期間を特定可能な情報を受信したか否かを判定する。保存対象の期間を特定可能な情報を受信した場合には(ステップS52においてYES)、プロセッサ501は、ステップS53へ処理を進める。一方、保存対象の期間を特定可能な情報を受信していない場合には(ステップS52においてNO)、プロセッサ501は、ステップS52を繰り返す。
【0175】
ステップS53において、プロセッサ501は、保存対象の画像データを抽出する。より具体的には、プロセッサ501は、ストレージ503に保存されている変数データの収集/保存条件と、制御装置100から受信した保存対象の期間を特定可能な情報とに基づいて、保存対象の期間を特定する。プロセッサ501は、保存対象の期間内の時刻を示す撮影時刻情報を含む画像データを保存対象の画像データとしてストレージ503から抽出する。
【0176】
次のステップS54において、プロセッサ501は、制御装置100から暗号化された保存対象の変数データを受信する。
【0177】
次のステップS55において、プロセッサ501は、制御装置100からハッシュ値の問い合わせを受けたか否かを判定する。制御装置100からハッシュ値の問い合わせを受けた場合には(ステップS55においてYES)、プロセッサ501は、ステップS56へ処理を進める。一方、制御装置100からハッシュ値の問い合わせを受けていない場合には(ステップS55においてNO)、プロセッサ501は、ステップS55を繰り返す。
【0178】
ステップS56において、プロセッサ501は、制御装置100から受信した暗号化された保存対象の変数データのハッシュ値(第2ハッシュ値)を算出し、第2ハッシュ値を制御装置100に送信する。
【0179】
次のステップS57において、プロセッサ501は、送信完了通知を受信したか否かを判定する。送信完了通知を受信した場合には(ステップS57においてYES)、プロセッサ501は、ステップS58へ処理を進める。一方、送信完了通知を受信していない場合には(ステップS57においてNO)、プロセッサ501は、ステップS57を繰り返す。
【0180】
ステップS58において、プロセッサ501は、暗号化された保存対象の変数データを復号する。
【0181】
次のステップS59において、プロセッサ501は、復号された保存対象の変数データと、保存対象の画像データとを時刻情報で関連付けてストレージ503に保存する。より具体的には、プロセッサ501は、復号された保存対象の変数データと、保存対象の画像データとが時刻情報で関連付けられたファイルをストレージ503に保存する。
【0182】
次のステップS60において、プロセッサ501は、ステップS59にてストレージ503に保存されたファイルをサポート装置200に送信する。ステップS60の後、NAS500による保存処理が終了する。サポート装置200は、NAS500から受信したファイルに基づいて、保存対象の変数データを時系列グラフで表示するとともに、保存対象の変数データと時刻情報で関連付けられた保存対象の画像データが示す画像(動画または静止画)を表示する。
【0183】
(c9:時刻合わせ処理の手順)
図17は、図11を参照して説明された本実施の形態における時刻合わせ処理の手順を示すフローチャートである。
【0184】
ステップS71において、制御装置100のプロセッサ101は、NTPサーバ600から現在の時刻を取得する。ステップS72において、プロセッサ101は、時計108を現在の時刻に合わせる。ステップS73において、プロセッサ101は、時刻合わせコマンドをカメラ400に送信する。
【0185】
次のステップS74において、カメラ400のプロセッサ401は、時刻合わせコマンドを受信する。ステップS75において、プロセッサ401は、レスポンスコマンドを制御装置100に送信する。
【0186】
次のステップS76において、プロセッサ101は、レスポンスコマンドを受信する。ステップS77において、プロセッサ101は、上記式1を用いて、制御装置100とカメラ400との間の往復遅延時間を算出する。
【0187】
次のステップS78において、プロセッサ101は、制御装置100とカメラ400との間での時刻合わせコマンドおよびレスポンスコマンドの送受信が第2所定回数に到達したか否かを判定する。制御装置100とカメラ400との間での時刻合わせコマンドおよびレスポンスコマンドの送受信が第2所定回数に到達した場合には(ステップS78においてYES)、プロセッサ101は、ステップS79へ処理を進める。一方、制御装置100とカメラ400との間での時刻合わせコマンドおよびレスポンスコマンドの送受信が第2所定回数に到達していない場合には(ステップS78においてNO)、プロセッサ101は、ステップS73へ処理を戻す。
【0188】
ステップS79において、プロセッサ101は、第2所定回数分の往復遅延時間の平均値を算出する。ステップS80において、プロセッサ101は、上記式2を用いて、補正時刻を算出する。すなわち、プロセッサ101は、現在の時刻に往復遅延時間の平均値の2分の一を加算した時刻を補正時刻に決定する。ステップS81において、プロセッサ101は、補正時刻をカメラ400に送信する。
【0189】
次のステップS82において、プロセッサ401は、時計406を補正時刻に合わせる。ステップS82の後、時刻合わせ処理が終了する。
【0190】
(c10:設定変更処理の手順)
図18は、本実施の形態における設定変更処理の手順を示すフローチャートである。設定変更処理とは、図12を参照して説明された設定処理により設定された変数データの収集/保存条件の設定を変更する処理である。
【0191】
ステップS91において、タッチパネル300は、変数データの収集/保存条件の変更指示を受け付ける。変数データの収集/保存条件の変更指示は、ユーザによってタッチパネル300に入力される。ステップS92において、タッチパネル300は、変更指示を制御装置100に送信する。
【0192】
次のステップS93において、制御装置100のプロセッサ101は、変更指示を受信する。ステップS94において、プロセッサ101は、変更指示に基づいて、変数データの収集/保存条件の設定を変更する。より具体的には、プロセッサ101は、ストレージ103に保存されている設定情報125のうち変数データの収集/保存条件を変更指示に基づいて更新する。ステップS94の後、設定変更処理が終了する。
【0193】
設定変更処理が実行された場合には、ステップS29(図13参照)において、プロセッサ101は、保存対象の期間を特定可能な情報とともに、変更後の変数データの収集/保存条件をNAS500に送信する。
【0194】
<D.効果>
このように、データ保存システム1では、制御装置100は、保存対象の変数データをメモリカード106Aに保存した後、保存対象の変数データをNAS500に送信する。そのため、データ保存システム1では、保存対象の変数データのNAS500への送信中に、当該保存対象の変数データの少なくとも一部が消失、破壊、または改ざんされた場合でも、制御装置100は、保存対象の変数データをメモリカード106Aから取得して、NAS500に再送することができる。したがって、データ保存システム1によれば、保存対象の変数データを確実にNAS500に送信することができる。
【0195】
また、データ保存システム1では、制御装置100は、保存対象の変数データを暗号キーを用いて暗号化し、暗号化された保存対象の変数データをNAS500に送信する。そのため、データ保存システム1では、保存対象の変数データが盗聴されたり、改ざんされたりすることを抑制することができる。すなわち、データ保存システム1では、保存対象の変数データをセキュアにNAS500に送信することができる。
【0196】
また、データ保存システム1では、保存対象の変数データと保存対象の画像データとが時刻情報で関連付けられて、NAS500に保存される。保存対象の変数データと保存対象の画像データとが異なる装置に保存されている場合には、保存対象の変数データと保存対象の画像データとが散逸しているため、ユーザは両者を関連付けて参照することが難しい。しかしながら、データ保存システム1では、保存対象の変数データと保存対象の画像データとが時刻情報で関連付けられて、NAS500に保存される。そのため、データ保存システム1によれば、変数データおよび画像データを散逸なく、確実に保存することができる。したがって、データ保存システム1によれば、1以上のフィールド機器700に異常が発生した場合に、ユーザは同一時刻の変数データと画像データとを容易に参照することができる。そのため、データ保存システム1は、異常の発生原因の解析に役立つ。
【0197】
また、制御装置100の時計108とカメラ400の時計406との時刻が一致していなければ、同一時刻の変数データと画像データとを関連付けて解析しづらい。しかしながら、データ保存システム1では、制御装置100の時計108とカメラ400の時計406との時刻を合わせることができる。そのため、データ保存システム1によれば、1以上のフィールド機器700に異常が発生した場合に、同一時刻の変数データと画像データとを関連付けてより正確に解析することができる。したがって、データ保存システム1は、異常の発生原因の解析に役立つ。
【0198】
なお、上記では、時刻合わせ処理は設定処理の中で行われたが、時刻合わせ処理が行われるタイミングはこれに限られない。ユーザがタッチパネル300またはサポート装置200から任意のタイミングで時刻合わせ処理の実行を指示できるようにしてもよい。また、上記では、NTPサーバ600を用いた時刻合わせ処理の例を示したが、NTPサーバ600を用いずに制御装置100の時計108とカメラ400の時計406との時刻合わせが行われてもよい。例えば、制御装置100は、図17に示すステップS73からステップS79までの処理により往復遅延時間の平均値を算出する。タッチパネル300またはサポート装置200は、当該往復遅延時間の平均値を表示する。ユーザは、タッチパネル300またはサポート装置200に、制御装置100の時計108を合わせたい時刻を入力する。制御装置100のプロセッサ101は、時計108をタッチパネル300またはサポート装置200に入力された時刻に合わせ、カメラ400のプロセッサ401は、タッチパネル300またはサポート装置200に入力された時刻に往復遅延時間の平均値の2分の一が加算された時刻に時計406を合わせる。
【0199】
[付記]
上述した実施の形態および変形例は、以下のような技術思想を含む。
【0200】
[構成1]
データ保存システム(1)であって、
制御装置(100)と、
ネットワークストレージ(500)とを備え、
前記制御装置(100)は、
前記制御装置(100)が管理する1以上の変数の変数データを収集する収集部(151)と、
保存トリガが発生した場合に、前記保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを前記変数データから抽出する第1抽出部(152)と、
前記保存対象の変数データを前記制御装置(100)とネットワーク(901,902)を介さずに接続される外部ストレージ(106A)に保存する保存処理部(153)と、
前記保存対象の変数データが前記外部ストレージ(106A)に保存された後、前記保存対象の変数データを前記ネットワークストレージ(500)に送信する送信部(154)とを備える、データ保存システム。
【0201】
[構成2]
前記送信部(154)は、前記保存対象の変数データの送信に失敗した場合に、前記保存対象の変数データを前記外部ストレージ(106A)から取得して、前記保存対象の変数データを前記ネットワークストレージ(500)に再送する、構成1に記載のデータ保存システム。
【0202】
[構成3]
前記制御装置(100)は、前記保存対象の変数データの第1ハッシュ値を算出する第1算出部(155)をさらに備え、
前記ネットワークストレージ(500)は、前記制御装置(100)から受信した前記保存対象の変数データの第2ハッシュ値を算出する第2算出部(554)を備え、
前記送信部(154)は、前記第1ハッシュ値と前記第2ハッシュ値とが一致しない場合に、前記保存対象の変数データの送信に失敗したと判断する、構成2に記載のデータ保存システム。
【0203】
[構成4]
前記制御装置(100)は、前記保存対象の変数データの送信に所定回数以上失敗している場合にエラー信号を出力する出力部(156)をさらに備える、構成2または3に記載のデータ保存システム。
【0204】
[構成5]
前記送信部(154)は、前記保存対象の変数データを暗号化して前記ネットワークストレージ(500)に送信する、構成1~4のいずれか1項に記載のデータ保存システム。
【0205】
[構成6]
前記データ保存システム(1)は、監視対象エリアを撮影するカメラ(400)をさらに備え、
前記カメラ(400)は、前記監視対象エリアを撮影した画像データを前記ネットワークストレージ(500)に送信し、
前記ネットワークストレージ(500)は、
前記保存トリガが発生した場合に、前記保存対象の期間における保存対象の画像データを前記画像データから抽出する第2抽出部(552)と、
前記保存対象の変数データと前記保存対象の画像データとを時刻情報で関連付けて記憶する記憶部(503)とを備える、構成1~5のいずれか1項に記載のデータ保存システム。
【0206】
[構成7]
前記制御装置(100)は、前記制御装置(100)と前記カメラ(400)との時刻合わせを行う調整部(157)をさらに備える、構成6に記載のデータ保存システム。
【0207】
[構成8]
前記調整部(157)は、時刻合わせコマンドを前記カメラ(400)に送信し、
前記カメラ(400)は、前記時刻合わせコマンドを受信した場合に、レスポンスコマンドを前記制御装置(100)に送信し、
前記調整部(157)は、
前記レスポンスコマンドを受信した場合に、前記時刻合わせコマンドの送信時刻と前記レスポンスコマンドの受信時刻とに基づいて前記カメラ(400)に送信する補正時刻を算出し、
前記補正時刻を前記カメラ(400)に送信する、構成7に記載のデータ保存システム。
【0208】
[構成9]
前記調整部(157)は、
前記レスポンスコマンドを受信した場合に、前記時刻合わせコマンドの送信時刻と前記レスポンスコマンドの受信時刻とに基づいて前記制御装置(100)と前記カメラ(400)との間の通信遅延時間を算出し、
前記通信遅延時間に基づいて前記補正時刻を算出する、構成8に記載のデータ保存システム。
【0209】
[構成10]
1以上のコンピュータによって実行されるデータ保存方法であって、
制御装置(100)が管理する1以上の変数の変数データを収集することと、
保存トリガが発生した場合に、前記保存トリガの発生時刻に基づいて決定される保存対象の期間における保存対象の変数データを前記変数データから抽出することと、
前記保存対象の変数データを前記制御装置(100)とネットワークを介さずに接続される外部ストレージ(106A)に保存することと、
前記保存対象の変数データが前記外部ストレージ(106A)に保存された後、前記保存対象の変数データを前記ネットワークストレージ(500)に送信することとを備える、データ保存方法。
【0210】
[構成11]
構成10に記載のデータ保存方法を1以上のコンピュータに実行させる、データ保存プログラム。
【0211】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0212】
1 データ保存システム、11,12,16 ボタン、13,14,15 入力ボックス、100 制御装置、101,401,501 プロセッサ、102,402,502 メモリ、103,403,503 ストレージ、104,404,504 上位ネットワークコントローラ、105 フィールドネットワークコントローラ、106 メモリカードインターフェイス、106A メモリカード、107 タイマ、108 時計、113,413,513 制御プログラム、114,414,514 システムプログラム、116 スケジューラプログラム、117 入出力プログラム、118,515 ユーザプログラム、119 モーション演算、120 異常検知プログラム、121 収集プログラム、122 送信プログラム、123 時刻管理プログラム、124 データ型定義データ、125,416,516 設定情報、131 プライマリ定周期タスク,133,134 定周期タスク、132 イベントタスク、135 システムサービス、141 プライマリ周期、143,144 タスク周期、151 収集部、152 第1抽出部、153,553 保存処理部、154 送信部、155 第1算出部、156 出力部、157 調整部、161 データバッファ、162 リングバッファ、200 サポート装置、300 タッチパネル、400 カメラ、405 撮像部、415 録画プログラム、551 受信部、552 第2抽出部、554 第2算出部、600 NTPサーバ、700 フィールド機器、701 サーボモータドライバ、702 温度調節器、703 ロボットコントローラ、801 サーボモータ、802 ヒーター、803 ロボット、901 上位ネットワーク、902 フィールドネットワーク、G1 設定画面、T0,t1,t2,t3,t4,t5,t6 タイミング。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18