(57)【要約】【課題】ＲＡＭの全体の領域について故障検出を実行可能な故障検出装置、故障検出方法及び故障検出プログラムを提供する。【解決手段】故障検出装置１０は、ＲＡＭ１２５と、所定のサンプリング周期Ｔ１で、物理量の検出に関する処理を実行する制御部１２２と、を備え、ＲＡＭ１２５は、領域全体を分割して生成される複数の分割領域を有し、制御部１２２は、複数のサンプリング周期Ｔ１のそれぞれにおいて、処理を実行していない時間に、複数の分割領域の一部の分割領域について、順次故障検出を実行する。【選択図】図４
2019191770.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭと、
所定のサンプリング周期で、物理量の検出に関する処理を実行する制御部と、
を備え、
前記ＲＡＭは、領域全体を分割して生成される複数の分割領域を有し、
前記制御部は、複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行する、
故障検出装置。
【請求項２】
前記制御部は、前記複数の分割領域のうちの一部の特定の分割領域について、優先的に故障検出を実行する、請求項１に記載の故障検出装置。
【請求項３】
前記特定の分割領域は、前記制御部が実行した演算処理の結果を記憶する演算結果記憶領域に属する、請求項２に記載の故障検出装置。
【請求項４】
前記制御部は、液体の性質の検出に関する処理を実行する、請求項１乃至請求項３のいずれか一項に記載の故障検出装置。
【請求項５】
ＲＡＭを備える故障検出装置により実行される故障検出方法であって、
前記ＲＡＭは、領域全体を分割して生成される複数の分割領域を有し、
所定のサンプリング周期で、物理量の検出に関する処理を実行するステップと、
複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行するステップと、
を含む、故障検出方法。
【請求項６】
領域全体を分割して生成される複数の分割領域を有するＲＡＭを備える故障検出装置に、
所定のサンプリング周期で、物理量の検出に関する処理を実行するステップと、
複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行するステップと、
を実行させる、故障検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの故障検出を行う故障検出装置、故障検出方法及び故障検出プログラムに関する。
【背景技術】
【０００２】
従来、メモリの診断を行う装置が知られている。例えば、特許文献１には、ＲＡＭ（Random Access Memory）のＳＭ（Safety Mechanism）ＲＡＭ領域について、診断を行う装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１７０５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された装置は、ＲＡＭの一部の領域であるＳＭＲＡＭ領域の診断を行うにすぎない。そのため、特許文献１に開示された装置では、診断されていない領域で発生する故障を検出できない。
【０００５】
本発明は、ＲＡＭの全体の領域について故障検出を実行可能な故障検出装置、故障検出方法及び故障検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の第１の態様である故障検出装置は、ＲＡＭと、所定のサンプリング周期で、物理量の検出に関する処理を実行する制御部と、を備え、前記ＲＡＭは、領域全体を分割して生成される複数の分割領域を有し、前記制御部は、複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行する。
ここで、前記制御部は、前記複数の分割領域のうちの一部の特定の分割領域について、優先的に故障検出を実行することができる。
また、前記特定の分割領域は、前記制御部が実行した演算処理の結果を記憶する演算結果記憶領域に属していてよい。
また、前記制御部は、液体の性質の検出に関する処理を実行することができる。
上記課題を解決するため、本発明の第２の態様である故障検出方法は、ＲＡＭを備える故障検出装置により実行される故障検出方法であって、前記ＲＡＭは、領域全体を分割して生成される複数の分割領域を有し、所定のサンプリング周期で、物理量の検出に関する処理を実行するステップと、複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行するステップと、を含む。
上記課題を解決するため、本発明の第３の態様である故障検出プログラムは、領域全体を分割して生成される複数の分割領域を有するＲＡＭを備える故障検出装置に、所定のサンプリング周期で、物理量の検出に関する処理を実行するステップと、複数のサンプリング周期のそれぞれにおいて、前記処理を実行していない時間に、前記複数の分割領域の一部の分割領域について、順次故障検出を実行するステップと、を実行させる。
【発明の効果】
【０００７】
本発明によれば、ＲＡＭの全体の領域について故障検出を実行可能な故障検出装置、故障検出方法及び故障検出プログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る安全計装システムの概略構成の一例を示す機能ブロック図である。
【図２】図１に示すセンサ装置の概略構成の一例を示す機能ブロック図である。
【図３】図２のＲＡＭが有するデータ領域の一例を模式的に示す図である。
【図４】図１のセンサ装置が実行する故障検出の方法について説明する図である。
【図５】図１のセンサ装置が時間Ｔ３に実行する処理の一例を示すフローチャートである。
【図６】ＲＡＭの領域全体を分割して生成される分割領域を示すイメージ図である。
【図７】図２の信号変換器の制御部が備えるレジスタの一例を模式的に示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態について、図面を参照して説明する。
【００１０】
図１は、一実施形態に係る安全計装システム１の概略構成の一例を示す機能ブロック図である。安全計装システム１は、例えばプラントにおける操業ラインに設けられる。安全計装システム１は、操業ライン上の機器に異常が起こった場合等の緊急時に、プラントを安全な状態に停止させるために設けられるシステムである。緊急時に安全計装システム１が動作することにより、爆発事故又は人身事故等の災害や環境汚染等を未然に防止したり、設備を保護したりすることができる。プラントの例としては、化学等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。ただし、プラントは、ここで示した例に限られない。
【００１１】
図１に一例として示す安全計装システム１は、センサ装置１０と、制御演算装置１１と、安全装置１２とを備える。安全計装システム１において、センサ装置１０は、内部に備えるＲＡＭの故障検出を行う、故障検出装置として機能する。
【００１２】
センサ装置１０は、操業ラインにおける所定の物理量の検出に関する処理を実行する装置である。所定の物理量の検出に関する処理は、所定の物理量の検出、及び、検出した物理量に応じた信号の出力を含む。所定の物理量は、操業ラインで使用される機器及び物質等の性質に応じて適宜定められてよい。センサ装置１０は、検出した物理量に応じた信号を制御演算装置１１に送信する。図１に示す例では、センサ装置１０は、検出した物理量に応じた信号を、４−２０ｍＡの電流を用いて、制御演算装置１１に送信する。すなわち、センサ装置１０は、検出した物理量の値に応じて、４ｍＡから２０ｍＡの範囲の電流を制御演算装置１１に送信する。本明細書では、センサ装置１０が、所定の物理量として、操業ラインで使用される流体の水素イオン指数（ｐＨ）を検出するとして、以下説明する。ただし、所定の物理量はｐＨに限られない。以下、本明細書において、センサ装置１０が実行する処理を、「センサ処理」ともいう。センサ処理は、物理量の検出に関する処理を含む。
【００１３】
図１に示すように、センサ装置１０は、センサ素子１１０と、信号変換器１２０とを備える。図２は、センサ装置１０の概略構成の一例を示す機能ブロック図である。
【００１４】
センサ素子１１０は、上述した所定の物理量を検出するための素子である。ここでは、センサ素子１１０は、流体のｐＨを検出可能なセンサ素子である。
【００１５】
信号変換器１２０は、センサ素子１１０から出力される検出結果に基づく電気信号を受信し、当該信号についてデジタル信号処理を行い、デジタル信号処理結果に基づき、４−２０ｍＡの電流を制御演算装置１１に出力する。
【００１６】
図２に一例として示すように、信号変換器１２０は、アナログデジタル（Ａ／Ｄ）コンバータ１２１と、制御部１２２と、出力部１２３と、ＲＯＭ（Read Only Memory）１２４と、ＲＡＭ１２５とを備える。
【００１７】
Ａ／Ｄコンバータ１２１は、センサ素子１１０から出力される検出結果に基づくアナログの電気信号を、デジタル信号に変換する。
【００１８】
制御部１２２は、信号変換器１２０の各機能ブロックをはじめとして、信号変換器１２０の全体を制御及び管理する。制御部１２２は、中央処理装置（ＣＰＵ：Central Processing Unit）等の任意の好適なプロセッサ上で実行されるソフトウェアとして構成したり、処理ごとに特化した専用のプロセッサによって構成したりすることができる。
【００１９】
制御部１２２は、例えばＲＯＭ１２４に記憶されたプログラムに従って、Ａ／Ｄコンバータ１２１で変換されたデジタル信号について、所定の演算処理を行う。制御部１２２は、演算処理の結果（以下、「演算結果」ともいう）を、例えばＲＡＭ１２５に記憶させる。また、制御部１２２は、ＲＡＭ１２５に記憶させた演算結果を、４−２０ｍＡの電流に変換し、例えば定期的に制御演算装置１１に出力する。
【００２０】
出力部１２３は、制御部１２２の制御に基づき、信号を制御演算装置１１に出力するインタフェースである。ここでは、出力部１２３は、制御部１２２の制御に基づき、４−２０ｍＡの電流信号を制御演算装置１１に出力する。
【００２１】
ＲＯＭ１２４は、信号変換器１２０の記憶部として機能する。ＲＯＭ１２４は、例えば制御部１２２において実行されるプログラムを記憶する。
【００２２】
ＲＡＭ１２５は、信号変換器１２０の記憶部として機能する。ＲＡＭ１２５は、例えば制御部１２２による演算結果を記憶する。
【００２３】
図３は、ＲＡＭ１２５が有するデータ領域の一例を模式的に示す図である。図３に示すように、ＲＡＭ１２５は、データ領域として、オペレーティングシステム（ＯＳ）領域１２６と、スタック領域１２７と、プログラム動作制御用データ領域１２８と、演算結果記憶領域１２９とを有する。ＯＳ領域１２６は、制御部１２２を動作させるソフトウェアを記憶する領域である。スタック領域１２７は、制御部１２２による処理の実行中に一時的にデータを記憶する領域である。プログラム動作制御用データ領域１２８は、プログラムを動作させるに際し使用されるデータを記憶する領域であり、例えば平均値を算出するための測定回数等のデータが記憶される。演算結果記憶領域１２９は、上述したように制御部１２２がＡ／Ｄコンバータ１２１で変換されたデジタル信号について実行した演算処理の結果を記憶する領域である。
【００２４】
再び図１を参照すると、制御演算装置１１は、センサ装置１０から電流信号を受信する。制御演算装置１１は、安全制御を実現するための安全制御ロジックを実行する。制御演算装置１１は、例えば受信した電流信号に基づき、異常が発生していると判定した場合、安全装置１２に対して所定の制御を実行させるための制御信号を送信する。制御演算装置１１は、いわゆるロジックソルバと呼ばれる機構により構成されていてよい。
【００２５】
安全装置１２は、制御演算装置１１から受信した制御信号に基づいて、所定の制御を実行する。例えば、安全装置１２は、制御演算装置１１から受信した制御信号に基づいて、操業ラインの稼働を停止させる制御を実行する。
【００２６】
例えば、安全装置１２は、バルブポジショナ又は電磁弁等として構成されていてよい。制御演算装置１１は、受信した電流信号に基づき、異常が発生していると判定した場合、安全装置１２に対して、弁を閉じるための制御信号を送信する。バルブポジショナ又は電磁弁として構成された安全装置１２は、制御演算装置１１から受信した制御信号に基づいて弁を閉じることにより、例えば流体のラインへの供給を停止させることができる。
【００２７】
図１に一例として示した安全計装システム１において、安全機能を果たす確からしさに関する指標として、安全度水準（ＳＩＬ：Safety Integrity Level）が知られている。安全度水準は、ＳＩＬ１からＳＩＬ４までの４段階に分類されており、ＳＩＬ１が最も安全性が低く、ＳＩＬ４が最も安全性が高いことを示す。なお、ＳＩＬは、例えば機能安全規格ＩＥＣ６１５０８に基づいて定められるものであってよい。
【００２８】
安全計装システム１のＳＩＬは、例えば安全計装システム１の各構成要素の機能失敗平均確率（ＰＦＤ：Probability of Failure on Demand）の和に基づいて定められる。すなわち、図１に示す安全計装システム１の例では、ＳＩＬは、センサ装置１０、制御演算装置１１及び安全装置１２のＰＦＤの和に基づいて定められる。各構成要素のＰＦＤの和が低いほど、ＳＩＬの分類として示される数値が高くなる。つまり、各構成要素のＰＦＤの和が低いほど、安全性が高いことを意味する。
【００２９】
ところで、安全計装システム１のセンサ装置１０は、図２を参照して説明したようにＲＡＭ１２５を備えるが、ＲＡＭ１２５は他の機能部と比較して故障が発生しやすい。すなわち、ＲＡＭ１２５のＰＦＤは高くなりやすく、そのため、ＲＡＭ１２５のＰＦＤが安全計装システム１のＳＩＬに大きな影響を与えやすい。言い換えると、ＲＡＭ１２５のＰＦＤを改善することにより、安全計装システム１全体のＳＩＬが向上しやすい。
【００３０】
従来公知の発明では、例えば、安全計装システム１の起動時に、ＲＡＭ１２５全体の故障検出が実行されるとともに、ＲＡＭ１２５の動作中に、ＲＡＭ１２５のうち演算結果記憶領域１２９の故障検出が実行される。しかしながら、ＲＡＭ１２５の動作中は、演算結果記憶領域１２９のみ故障検出が実行され、安全計装システム１の動作に影響を与える他の領域については故障検出が実行されない。安全計装システム１の動作に影響を与える他の領域は、図３に示す例では、ＯＳ領域１２６、スタック領域１２７、プログラム動作制御用データ領域１２８である。また、ＲＡＭ１２５の動作中に、例えばＯＳ領域１２６を含む、演算結果記憶領域１２９以外の他の領域について故障検出を実行しようとする場合、ＲＡＭ１２５の動作を停止する必要がある。しかしながら、ＲＡＭ１２５の動作を停止して、故障検出を実行すると、安全計装システム１の動作に支障をきたすこととなるため、ＲＡＭ１２５の動作を停止して故障検出を実行することは現実的ではない。
【００３１】
一方、例えばＲＡＭ１２５が、いわゆる誤り検出訂正（ＥＣＣ：Error Check and Correct）機能を有する場合、ＲＡＭ１２５は、ＥＣＣによる故障検出を行うことにより、ＲＡＭ１２５の動作中においても、ＲＡＭ１２５全体の故障検出を実行することができる。ＥＣＣ機能は、ＲＡＭ１２５に記憶されるデータにエラーが発生していることを検出したり、エラーを有するデータを正しいデータに訂正したりすることが可能な機能である。しかしながら、ＥＣＣ機能付きのＲＡＭ１２５は、ＥＣＣ機能を有さないＲＡＭ１２５と比較して高価であるため、ＥＣＣ機能付きのＲＡＭ１２５を採用すると、安全計装システム１のコストが上昇する。
【００３２】
そこで、本願発明は、ＥＣＣ機能を有さない、より安価なＲＡＭ１２５を用いて、ＲＡＭ１２５の動作中にも故障検出を実行可能な故障検出装置、故障検出方法及び故障検出プログラムを提供する。
【００３３】
ここで、本実施形態に係るセンサ装置１０が実行する、故障検出の具体的な方法について説明する。仮に、ＲＡＭ１２５の全体の領域について故障検出を実行する場合、例えば数百ミリ秒から数秒程度の時間を必要とする。しかしながら、上述のように、ＲＡＭ１２５の動作中に、数百ミリ秒から数秒の間、ＲＡＭ１２５の動作を停止することは現実的に実行し得ない。
【００３４】
そこで、本実施形態に係るセンサ装置１０は、ＲＡＭ１２５が備える領域全体が分割された複数の要素について、順次故障検出を行うことにより、ＲＡＭ１２５の領域全体を複数回に分割して故障検出を行う。
【００３５】
図４は、本実施形態に係るセンサ装置１０が実行する故障検出の方法について説明する図である。図４には、上段及び下段に、センサ装置１０が実行する処理を示すタイムチャートが示されている。図４において、横軸は時刻を示す。
【００３６】
図４の下段に示すタイムチャートは、センサ装置１０がＲＡＭ１２５の領域全体について一度に故障検出を実行する場合の処理を示す。ＲＡＭ１２５の領域全体について一度に故障検出を実行する場合、ＲＡＭ１２５の領域全体の故障検出に所定の時間Ｔ０を要する。当該所定の時間Ｔ０は、上述したように、例えば数百ミリ秒から数秒である。このようにＲＡＭ１２５の領域全体について一度に故障検出を実行する場合、当該所定の時間Ｔ０の間は、ＲＡＭ１２５の動作を停止する必要がある。
【００３７】
図４の上段に示すタイムチャートは、本実施形態に係るセンサ装置１０が実行する故障検出の処理を示す。本実施形態に係るセンサ装置１０は、故障検出において、ＲＡＭ１２５の領域全体を分割して生成される複数の要素を用いる。ＲＡＭ１２５の領域全体を分割して生成される、分割された要素のそれぞれを、本明細書において、以下「分割領域」ともいう。図４の下段に示すタイムチャートには、ＲＡＭ１２５の領域全体を分割した、分割領域の一例がイメージ図として示されている。本実施形態において、ＲＡＭ１２５の分割領域は、予め定められ、センサ装置１０において設定されていてよい。
【００３８】
分割領域は、図３に一例として示したＲＡＭ１２５が有するデータ領域とは異なる区分で分割されていてよい。つまり、分割領域は、必ずしも、ＯＳ領域１２６、スタック領域１２７、プログラム動作制御用データ領域１２８及び演算結果記憶領域１２９の４つに分割されるものではない。例えば、ＯＳ領域１２６、スタック領域１２７、プログラム動作制御用データ領域１２８及び演算結果記憶領域１２９が、それぞれさらに分割されて、分割領域が形成されていてよい。この場合、各分割領域は、ＯＳ領域１２６、スタック領域１２７、プログラム動作制御用データ領域１２８及び演算結果記憶領域１２９のいずれかに属する。
【００３９】
本実施形態に係るセンサ装置１０は、図４の上段のタイムチャートに示すように、例えば一定のサンプリング周期Ｔ１で、センサ処理を実行する。サンプリング周期Ｔ１は、例えば検出対象となる物理量、及びセンサ素子１１０の仕様等に応じて、適宜定められていてよい。
【００４０】
各サンプリング周期Ｔ１において、センサ装置１０はセンサ処理を実行する。センサ装置１０は、各サンプリング周期Ｔ１において、例えば物理量を検出する処理を実行する。ここで、センサ装置１０が実行するセンサ処理は、サンプリング周期Ｔ１の全体をかけることなく終了し得る。例えば、センサ装置１０は、各サンプリング周期Ｔ１のうち、サンプリング開始後の所定時間Ｔ２の間に、当該サンプリング周期Ｔ１の間に実行すべきセンサ処理を完了し得る（ただし、Ｔ１＞Ｔ２である）。すなわち、各サンプリング周期Ｔ１において、サンプリング周期Ｔ１から所定の時間Ｔ２を除いた時間Ｔ３は、センサ装置１０がセンサ処理を実行していない（ただし、Ｔ１＝Ｔ２＋Ｔ３）。以下、所定時間Ｔ２を、センサ処理時間Ｔ２ともいう。
【００４１】
本実施形態に係るセンサ装置１０は、各サンプリング周期Ｔ１のうち、センサ処理が実行されない時間Ｔ３の間に、故障検出を実行する。このとき、センサ装置１０は、ＲＡＭ１２５の１つの分割領域について、故障検出を実行する。以下、時間Ｔ３を、故障検出時間Ｔ３ともいう。
【００４２】
センサ装置１０は、各サンプリング周期Ｔ１において、センサ処理時間Ｔ２におけるセンサ処理と、故障検出時間Ｔ３における故障検出とを交互に繰り返す。センサ装置１０は、各サンプリング周期Ｔ１の故障検出時間Ｔ３において、複数の分割領域の全てについて、順次故障検出を実行する。センサ装置１０は、このように各サンプリング周期Ｔ１において分割領域の故障検出を順次実行する。センサ装置１０は、分割領域の個数と同じ回数のサンプリング周期Ｔ１を経ることによって、ＲＡＭ１２５の領域全体について故障検出を行うことができる。本実施形態に係るセンサ装置１０によりＲＡＭ１２５の領域全体について故障検出を一通り完了するまでにかかる時間を、以下、故障検出周期ＴＤともいう。
【００４３】
故障検出周期ＴＤは、ＲＡＭ１２５の分割領域と同数のサンプリング周期Ｔ１を含む。本実施形態に係るセンサ装置１０は、このようにＲＡＭ１２５の分割領域について、各サンプリング周期Ｔ１のうちの一部の故障検出時間Ｔ３に、順次故障検出を実行することにより、故障検出周期ＴＤの間に、ＲＡＭ１２５が有する領域全体について、故障検出を実行することができる。
【００４４】
図５は、センサ装置１０が故障検出時間Ｔ３に実行する処理の一例を示すフローチャートである。すなわち、センサ装置１０は、故障検出時間Ｔ３に、図５に一例として示す処理を実行することにより、１つの分割領域について故障検出を実行する。
【００４５】
図６は、ＲＡＭ１２５の領域全体を分割して生成される分割領域を示すイメージ図である。図６に示すように、ＲＡＭ１２５は、故障検出を実行するための分割領域として、領域１から領域Ｎまでの、Ｎ個（Ｎ＞１）の分割領域を有する。各分割領域には、例えばそれぞれデータが記憶されている。センサ装置１０は、各サンプリング周期Ｔ１の故障検出時間Ｔ３において、領域１から領域ＮまでのＮ個の分割領域について、順に故障検出を実行する。なお、図５のフローでは、複数の分割領域のうち、領域１についての故障検出の処理の一例が示されている。
【００４６】
図７は、信号変換器１２０の制御部１２２が備えるレジスタの一例を模式的に示す図である。本実施形態では、図７に一例として示すように、レジスタとしてＲ０からＲ４までの、少なくとも５つのレジスタを備える制御部１２２により、図５のフローが実行されるとする。
【００４７】
図５を参照すると、制御部１２２は、故障検出時間Ｔ３が開始されると、割込みを禁止する処理を行う（ステップＳ１０）。これにより、故障検出以外の処理が割り込むことがなくなる。すなわち、図５のフローに示す処理以外の処理が実行されなくなる。
【００４８】
次に、制御部１２２は、ＲＡＭ１２５の領域１に記憶されたデータ（DATA1）を、制御部１２２のレジスタＲ３に転送し、レジスタＲ３に当該DATA1を保存する（ステップＳ１１）。このようにして、制御部１２２は、領域１に記憶されたDATA1を、レジスタＲ３に一時的に退避させる。
【００４９】
次に、制御部１２２は、領域１のDATA1として、「0x55555555」という値を書き込む（ステップＳ１２）。「0x55555555」は、３２ビットのビットパターンにおいて、「01010101・・・」と表現される値である。
【００５０】
制御部１２２は、DATA1及び「0x55555555」の排他的論理和を取り、この演算結果を、レジスタＲ２に保存する（ステップＳ１３）。ここで、DATA1には、ステップＳ１２において「0x55555555」という値が書き込まれているので、領域１が正常であれば、レジスタＲ２に保存される演算結果は、０となる。
【００５１】
次に、制御部１２２は、領域１のDATA1として、「0xAAAAAAAA」という値を書き込む（ステップＳ１４）。「0xAAAAAAAA」は、３２ビットのビットパターンにおいて、「10101010・・・」と表現される値である。
【００５２】
制御部１２２は、DATA1及び「0xAAAAAAAA」の排他的論理和と、ステップＳ１３でレジスタＲ２に保存された演算結果との論理和を取り、この演算結果を、レジスタＲ０に保存する（ステップＳ１５）。ここで、DATA1には、ステップＳ１４において「0xAAAAAAAA」という値が書き込まれているので、領域１が正常であれば、DATA1及び「0xAAAAAAAA」の排他的論理和は、０となる。従って、領域１が正常であれば、レジスタＲ０に保存される演算結果は、０となる。一方、領域１に異常がある場合、レジスタＲ０に保存される演算結果は、０以外の値となる。
【００５３】
次に、制御部１２２は、レジスタＲ３に退避させた元のデータを、領域１に記憶させる（ステップＳ１６）。このようにして、制御部１２２は、領域１に記憶されていた元のデータを復旧させる。
【００５４】
そして、制御部１２２は、割込みを許可する処理を行う（ステップＳ１７）。これにより、故障検出以外の処理が割り込んで実行され得る。
【００５５】
制御部１２２は、レジスタＲ０に保存された演算結果が０であるか否かを判定する（ステップＳ１８）。
【００５６】
制御部１２２は、レジスタＲ０に保存された演算結果が０であると判定した場合（ステップＳ１８のＹｅｓ）、領域１が正常であると判定し、このフローを終了する。
【００５７】
一方、制御部１２２は、レジスタＲ０に保存された演算結果が０でないと判定した場合（ステップＳ１８のＮｏ）、領域１に異常があると判定し、エラー処理を行う（ステップＳ１９）。制御部１２２は、エラー処理として、例えばエラーが発生したことを報知する。そして、制御部１２２は、このフローを終了する。
【００５８】
制御部１２２は、故障検出時間Ｔ３が開始されるたびに、図５のフローを実行して、領域１から領域Ｎまでの分割領域について順次故障検出を行う。これにより、制御部１２２は、故障検出周期ＴＤの間に、ＲＡＭ１２５の領域全体について故障検出を行うことができる。
【００５９】
このように、本実施形態に係るセンサ装置１０によれば、ＲＡＭ１２５を分割した複数の分割領域について、各サンプリング周期Ｔ１のうち、センサ処理を行っていない故障検出時間Ｔ３の間に故障検出を行う。そのため、センサ装置１０によれば、センサ装置１０の動作に影響を与える領域であるＯＳ領域１２６、スタック領域１２７、プログラム動作制御用データ領域１２８を含めた、ＲＡＭ１２５の全体の領域について故障検出を実行可能である。また、センサ装置１０は、センサ処理を行っていない故障検出時間Ｔ３の間に故障検出を行うため、センサ装置１０が実行するセンサ処理に影響を与えることなく、故障検出を実行することができる。つまり、センサ装置１０は、安全計装システム１における機能を損なうことなく、故障検出を実行することができる。
【００６０】
また、本実施形態に係るセンサ装置１０によれば、ＲＡＭ１２５の領域全体について故障検出を行うため、ＲＡＭ１２５の一部の領域について故障検出を行う場合と比較して、ＲＡＭ１２５の故障を見逃す可能性が低くなる。そのため、センサ装置１０のＰＦＤが低くなる。その結果、安全計装システム１全体のＰＦＤを下げることができ、ＳＩＬを向上させることができる。
【００６１】
なお、上記実施形態において、安全計装システム１のＳＩＬは、安全計装システム１の各構成要素のＰＦＤの和に基づいて定められると説明したが、安全計装システム１のＳＩＬは、安全側故障割合（ＳＦＦ：Safe Failure Fraction）及びフォールトトレランス（ＦＴ：Fault Tolerance）に基づいて定められてもよい。例えば、ＳＦＦが高いほど、また、ＦＴが高いほど、ＳＩＬの分類として示される数値が高くなるように、ＳＩＬが定められてよい。
【００６２】
上記実施形態では、センサ装置１０が、各サンプリング周期Ｔ１の故障検出時間Ｔ３の間に、ＲＡＭ１２５の１つの分割領域について故障検出を実行すると説明した。しかしながら、センサ装置１０が各サンプリング周期Ｔ１の故障検出時間Ｔ３の間に実行する故障検出の対象は、必ずしも１つの分割領域でなくてもよい。センサ装置１０は、各サンプリング周期Ｔ１の故障検出時間Ｔ３の間に、ＲＡＭ１２５の２つ以上の分割領域について故障検出を実行してもよい。これは、例えば故障検出時間Ｔ３の間に２つ以上の分割領域について故障検出が実行可能である場合にのみ、実行されてよい。このように、センサ装置１０は、各サンプリング周期Ｔ１の故障検出時間Ｔ３の間に、ＲＡＭ１２５の複数の分割領域の一部の分割領域について、故障検出を実行してよい。センサ装置１０が各サンプリング周期Ｔ１の故障検出時間Ｔ３の間に、２つ以上の分割領域について故障検出を実行する場合、１つの分割領域について故障検出を実行する場合と比較して、より早期に、ＲＡＭ１２５の全体について故障検出処理を実行することができる。つまり、故障検出周期ＴＤが短縮され得る。
【００６３】
上記実施形態において、センサ装置１０は、複数の分割領域のうちの一部の特定の分割領域について、優先的に故障検出を実行してもよい。ここで、優先的に故障検出を実行するとは、当該特定の分割領域について、他の分割領域よりも先に、つまり故障検出周期ＴＤの間のより早い段階で、故障検出を実行することをいう。優先的に故障検出を実行する特定の分割領域は、例えば予め定められ、センサ装置１０において設定されていてよい。特定の分割領域は、複数の分割領域のうち、例えば、ＳＩＬの分類に影響を与え得る領域であってよい。特定の分割領域について優先的に故障検出を実行することにより、当該特定の分割領域について、より早期に故障を検出しやすくなる。
【００６４】
例えば、特定の分割領域は、演算結果記憶領域１２９に属する分割領域であってよい。この場合、センサ装置１０は、特定の分割領域である演算結果記憶領域１２９に属する分割領域について、優先的に故障検出を実行してよい。演算結果記憶領域１２９以外の、例えばＯＳ領域１２６において故障が発生している場合には、センサ装置１０が異常な動作を示し、センサ装置１０の故障を発見することが可能である。これに対し、演算結果記憶領域１２９において故障が発生している場合、演算結果が正常であるか異常であるかを判定することは困難であり、センサ装置１０の故障を発見が容易ではない。しかしながら、演算結果記憶領域１２９に故障が発生すると、正常な演算結果が出力されず、安全計装システム１が正常に動作しなくなる場合がある。このように、演算結果記憶領域１２９に故障が発生した場合、故障を見逃す可能性が高くなる。そこで、特定の分割領域である演算結果記憶領域１２９に属する分割領域について、優先的に故障検出を実行することにより、演算結果記憶領域１２９で発生した故障を、より早期に検出することができるようになる。
【００６５】
上記実施形態に係るセンサ装置１０は、操業ラインにおける所定の物理量を検出する装置であると説明した。ここで、上記実施形態で説明した故障検出方法は、特にセンサ処理を実行するにあたり、サンプリング周期Ｔ１がより長い方が好適である。サンプリング周期Ｔ１が長いほど、故障検出時間Ｔ３を長く取りやすく、各サンプリング周期Ｔ１内において、より多くの時間を故障検出に使用することができるためである。
【００６６】
例えば、一般に、操業ラインに流体が供給される場合、気体の性質の変化よりも、液体の性質の変化の方が、変化が緩やかである。そのため、液体の性質を検出するセンサ装置１０は、気体の性質を検出するセンサ装置１０よりも、サンプリング周期Ｔ１がより長くても、液体の性質を検出し得る。従って、センサ装置１０は、操業ラインにおける所定の物理量として、液体の性質又は当該液体の性質の変化を検出する装置であってよい。ただし、これは、センサ装置１０が気体の性質又は気体の性質の変化を検出する装置であることを除外することを意図するものではない。
【００６７】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【００６８】
１  安全計装システム
１０  センサ装置
１１  制御演算装置
１２  安全装置
１１０  センサ素子
１２０  信号変換器
１２１  コンバータ
１２２  制御部
１２３  出力部
１２４  ＲＯＭ
１２５  ＲＡＭ
１２６  ＯＳ領域
１２７  スタック領域
１２８  プログラム動作制御用データ領域
１２９  演算結果記憶領域
Ｔ０  ＲＡＭの故障検出に要する時間
Ｔ１  サンプリング周期
Ｔ２  センサ処理時間
Ｔ３  故障検出時間
ＴＤ  故障検出周期
【図１】
2019191770.tif 000003
【図２】
2019191770.tif 000004
【図３】
2019191770.tif 000005
【図４】
2019191770.tif 000006
【図５】
2019191770.tif 000007
【図６】
2019191770.tif 000008
【図７】
2019191770.tif 000009