(57)【要約】【課題】安全Ｉ／Ｏモジュールのリアルタイム応答性が悪いこと。【解決手段】ネットワーク（ＮＷ）と対象機器（２０）との間に配置される安全Ｉ／Ｏモジュール（１０）が提供される。安全Ｉ／Ｏモジュール（１０）は、ＭＣＵ（１２１，１２２）を備える。また、ＭＣＵ（１２１，１２２）の各々は、ＣＰＵ（１２３）と、ＣＰＵ（１２３）が実行するタスクの切り替え処理及び起動処理を行うＲＴＯＳアクセラレータ（１２４）と、を備える。【選択図】図３Ａ
2017151496.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと対象機器との間に配置された安全監視装置であって、
第１及び第２のマイコンを備え、
前記第１及び第２のマイコンの各々は、
ＣＰＵと、
前記ＣＰＵが実行するタスクの切り替え処理及び起動処理を行う第１のハードウェアデバイスと、を備える、安全監視装置。
【請求項２】
前記安全監視装置は、
前記対象機器との間で入出力するデータが二重化されており、
前記第１のマイコンは、
二重化されたデータの一方を前記対象機器との間で入出力し、
前記第２のマイコンは、
二重化されたデータの他方を前記対象機器との間で入出力する、請求項１に記載の安全監視装置。
【請求項３】
前記第１及び第２のマイコンの各々は、
メモリと、
前記ネットワークとの間で送受信されるデータを前記メモリに記録する処理を行う第２のハードウェアデバイスと、をさらに備える、請求項１に記載の安全監視装置。
【請求項４】
前記第２のハードウェアデバイスは、
前記ネットワークから受信されるデータの誤りを検出する処理をさらに行う、請求項３に記載の安全監視装置。
【請求項５】
前記第２のハードウェアデバイスは、
前記ネットワークから受信されるデータの誤りを、チェックサムを用いて検出する、請求項４に記載の安全監視装置。
【請求項６】
前記ネットワーク上では、データはフレームの形式で伝送され、
前記第２のハードウェアデバイスは、
前記ネットワークから受信されるフレームからデータを抽出する処理及び前記ネットワークに送信するデータをフレームに格納する処理をさらに行う、請求項３に記載の安全監視装置。
【請求項７】
前記第１及び第２のマイコンの各々は、
前記メモリ同士が直接接続されており、
前記ＣＰＵは、
他方のマイコンに送信する信号を前記メモリに書き込み、他方のマイコンから受信する信号を前記メモリから読み出す、請求項３に記載の安全監視装置。
【請求項８】
前記第１及び第２のマイコンの各々の前記メモリのうちの信号の書き込み及び読み出しを行うメモリ、及び、当該メモリのメモリ領域は、予め決められている、請求項７に記載の安全監視装置。
【請求項９】
対象機器と、
ネットワークと前記対象機器との間に配置された安全監視装置と、を備え、
前記安全監視装置は、
第１及び第２のマイコンを備え、
前記第１及び第２のマイコンの各々は、
ＣＰＵと、
前記ＣＰＵが実行するタスクの切り替え処理及び起動処理を行う第１のハードウェアデバイスと、を備える、ネットワークシステム。
【請求項１０】
ネットワークと対象機器との間に配置された安全監視装置による安全監視方法であって、
前記安全監視装置は、第１及び第２のマイコンを備えており、
前記第１及び第２のマイコンの各々が、第１のハードウェアデバイスにより、ＣＰＵが実行するタスクの切り替え処理及び起動処理を行う、安全監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全監視装置に関し、例えば、産業ネットワーク分野の安全監視装置に好適に利用できるものである。
【背景技術】
【０００２】
機能安全規格は、ＩＥＣ（International Electrotechnical Commission）６１５０８によって製品カテゴリごとに制定されている。近年、産業ネットワーク分野においても、ＩＥＣ６１５０８への対応が迫られている。
【０００３】
そのため、産業ネットワーク分野で利用されるネットワークシステムは、ＩＥＣ６１５０８によって制定された機能安全規格に対応すべく、以下のような構成を備えている。
（１）機能安全を確保する対象機器（例えば、センサやアクチュエータ等）が入出力するデータを監視する安全Ｉ／Ｏ（Safety Input/Output）モジュールをネットワーク上に設ける。
（２）対象機器が入出力するデータを二重化する。
【０００４】
ここで、安全Ｉ／Ｏモジュールは、対象機器によるデータの二重化に対応するため、マイコンを二重化している。安全Ｉ／Ｏモジュールにおいては、ネットワークからデータが受信された場合、そのデータに対して２つのマイコンで同じ処理を実行し、その処理結果を相互にチェック（いわゆる、クロスチェック）して、安全性が確認された場合に、そのデータを二重化して対象機器に出力する。
【０００５】
なお、安全Ｉ／Ｏモジュールは、例えば、非特許文献１，２に開示され、マイコンの二重化は、例えば、非特許文献２，３に開示され、クロスチェックは、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１７８７３０号公報
【非特許文献】
【０００７】
【非特許文献１】Rockwell Automation, Inc、“安全入出力(I/O)モジュール”、［online］、［平成27年11月5日検索］、インターネット〈URL：http://ab.rockwellautomation.com/ja/Safety/IO〉
【非特許文献２】篠 淳一郎、外2名、“安定と安心を支える情報・プロセス制御システム「MICREX-NX」”、［online］、富士電機技報、2014 vol.87 no.1、［平成27年11月5日検索］、インターネット〈URL：http://www.fujielectric.co.jp/about/company/gihou_2014/pdf/87-01/FEJ-87-01-0038-2014.pdf〉
【非特許文献３】ルネサス エレクトロニクス株式会社、“産業機器向け機能安全ソリューション”、［online］、［平成27年11月5日検索］、インターネット〈URL：http://japan.renesas.com/applications/industrial_equipment/common_technologies_for_industry/functional_safety_solution_for_industrial_automation/index.jsp〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
産業ネットワーク分野においては、例えば、アクチュエータは、センサによる検知結果を即座に反映させて、動作を行う必要がある。このように、対象機器間のデータ通信には、リアルタイム応答性が要求されている。
【０００９】
しかし、安全Ｉ／Ｏモジュールは、マイコンが、上述した動作を主にソフトウェアを用いて行う構成であるため、処理速度が遅く、リアルタイム応答性が悪いという問題があった。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、安全監視装置は、第１及び第２のマイコンを備える。また、第１及び第２のマイコンの各々は、ＣＰＵと、ＣＰＵが実行するタスクの切り替え処理及び起動処理を行う第１のハードウェアデバイスと、を備える。
【発明の効果】
【００１２】
前記一実施の形態によれば、上述した課題の解決に貢献することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかるネットワークシステムの構成例を示す図である。
【図２】実施の形態１にかかる安全Ｉ／Ｏモジュール１０Ａ，１０Ｂの構成例を示すブロック図である。
【図３Ａ】実施の形態１にかかるＭＣＵ１２１，１２２の構成例を示すブロック図である。
【図３Ｂ】実施の形態１にかかるＲＴＯＳアクセラレータ１２４の構成例を示すブロック図である。
【図３Ｃ】実施の形態１にかかるイーサネット（Ethernet）（登録商標）アクセラレータ１２５の構成例を示すブロック図である。
【図４】実施の形態１にかかるイーサネットフレームのフレーム構造の例を示す図である。
【図５】実施の形態１にかかるＲＴＯＳアクセラレータ１２４及びイーサネットアクセラレータ１２５の効果を示す図である。
【図６】実施の形態１にかかるＭＣＵ１２１，１２２の動作例を示すフロー図である。
【図７】実施の形態１にかかるＲＴＯＳアクセラレータ１２４の効果を示す図である。
【図８】実施の形態１にかかるＭＣＵ１２１，１２２による、図６のステップＳ１２，Ｓ２２の詳細な動作例を示すフロー図である。
【図９】実施の形態２にかかる安全Ｉ／Ｏモジュール１０Ａ，１０Ｂの構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、各実施の形態について、図面を参照しながら詳細に説明する。なお、説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１５】
（１）実施の形態１
＜ネットワークシステムの構成＞
まず、図１を参照して、実施の形態１にかかるネットワークシステムの構成を説明する。図１に示されるように、実施の形態１にかかるネットワークシステムは、産業ネットワーク分野において、センサ２０Ａにて検知された検知結果を表すデータを、イーサネットＮＷを介してアクチュエータ２０Ｂに伝送するために利用されるものである。実施の形態１にかかるネットワークシステムは、センサ２０Ａ及びアクチュエータ２０Ｂを、機能安全を確保する対象機器としている。
【００１６】
また、実施の形態１にかかるネットワークシステムは、上述したセンサ２０Ａ及びアクチュエータ２０Ｂの他、安全Ｉ／Ｏモジュール１０Ａ，１０Ｂ、安全ＰＬＣ（Safety Programmable Logic Controller）３０、及びＰＬＣ４０を備えている。イーサネットＮＷは、ネットワークの一例であり、安全Ｉ／Ｏモジュール１０Ａ，１０Ｂは、安全監視装置の一例である。また、以下では、安全Ｉ／Ｏモジュール１０Ａ，１０Ｂのどちらであるかを特定しない場合は、安全Ｉ／Ｏモジュール１０と適宜称する。また、センサ２０Ａ及びアクチュエータ２０Ｂのどちらであるかを特定しない場合は、対象機器２０と適宜称する。
【００１７】
ＰＬＣ４０は、ネットワークシステムの全体の制御を行う制御装置である。
安全ＰＬＣ３０は、ネットワークシステムにおける対象機器２０（図１では、センサ２０Ａ及びアクチュエータ２０Ｂ）の機能安全に関する制御を行う安全制御装置である。
【００１８】
センサ２０Ａは、自身が検知した検知結果を表すデータを、イーサネットＮＷを介してアクチュエータ２０Ｂに送信する。
アクチュエータ２０Ｂは、センサ２０ＡからイーサネットＮＷを介して、センサ２０Ａで検知された検知結果を表すデータを受信する。
【００１９】
安全Ｉ／Ｏモジュール１０Ａは、センサ２０ＡとイーサネットＮＷとの間に配置され、センサ２０Ａから出力され、イーサネットＮＷに送信されるデータを監視する。センサ２０Ａと安全Ｉ／Ｏモジュール１０Ａとの間では、データは二重化されている。
【００２０】
安全Ｉ／Ｏモジュール１０Ｂは、アクチュエータ２０ＢとイーサネットＮＷとの間に配置され、イーサネットＮＷから受信され、アクチュエータ２０Ｂに入力されるデータを監視する。安全Ｉ／Ｏモジュール１０Ｂとアクチュエータ２０Ｂとの間では、データは二重化されている。
【００２１】
＜ネットワークシステムの動作＞
次に、実施の形態１にかかるネットワークシステムの動作の概要を説明する。安全Ｉ／Ｏモジュール１０Ａは、センサ２０Ａから二重化されたデータが入力されると、そのデータを後述の２つのＭＣＵ（Micro Control Unit。マイコンとも称される）で比較し、データの一致が確認された場合に、そのデータをイーサネットＮＷに送信する。センサ２０Ａのデータは、イーサネットＮＷ上の安全ＰＬＣ３０を介して安全Ｉ／Ｏモジュール１０Ｂに送信される。
【００２２】
安全Ｉ／Ｏモジュール１０Ｂは、イーサネットＮＷからセンサ２０Ａのデータが受信されると、そのデータに対して２つのＭＣＵで同じ処理を実行し、その処理結果を相互にチェック（いわゆる、クロスチェック）して、安全性が確認された場合に、そのデータを二重化してアクチュエータ２０Ｂに出力する。
【００２３】
なお、図１においては、安全Ｉ／Ｏモジュール１０Ａは、対象機器２０（図１では、センサ２０Ａ）からデータを入力し、そのデータをイーサネットＮＷに送信する処理を行っているが、イーサネットＮＷからデータを受信し、そのデータを対象機器２０に出力する機能も備えているとする。また、安全Ｉ／Ｏモジュール１０Ｂは、イーサネットＮＷからデータを受信し、そのデータを対象機器２０（図１では、アクチュエータ２０Ｂ）に出力する処理を行っているが、対象機器２０からデータを入力し、そのデータをイーサネットＮＷに送信する機能も備えているとする。
【００２４】
＜安全Ｉ／Ｏモジュールの構成＞
次に、図２を参照して、実施の形態１にかかる安全Ｉ／Ｏモジュール１０Ａ，１０Ｂの構成を説明する。図２に示されるように、実施の形態１にかかる安全Ｉ／Ｏモジュール１０Ａ，１０Ｂは、ソフトウェア群１１、ハードウェア群１２、及びデジタルＩ／Ｏ１３を備えている。
【００２５】
ソフトウェア群１１には、監視アプリケーション、自己診断用アプリケーション等の各種ソフトウェア（図示せず）が含まれる。
ハードウェア群１２は、２個のＭＣＵ１２１，１２２を含んでいる。ＭＣＵ１２１，１２２は、第１及び第２のマイコンの一例である。イーサネットＮＷには、ＭＣＵ１２１が接続される。ＭＣＵ１２１，１２２は、外部ペリフェラル（図示せず）を介してシリアル接続され、シリアル通信でクロスコミュニケーションを行うものとする。なお、ハードウェア群１２には、ＭＣＵ１２１，１２２以外にも、電源回路、監視回路等の他のハードウェア（図示せず）も含まれる。
【００２６】
デジタルＩ／Ｏ１３は、処理部１３１、安全入力ポート１３１Ａ、安全出力ポート１３１Ｂ、処理部１３２、安全入力ポート１３２Ａ、及び安全出力ポート１３２Ｂを備えている。対象機器２０には、安全入力ポート１３１Ａ、安全出力ポート１３１Ｂ、安全入力ポート１３２Ａ、及び安全出力ポート１３２Ｂが接続される。
【００２７】
対象機器２０からの二重化されたデータは、一方が安全入力ポート１３１Ａ及び処理部１３１を介してＭＣＵ１２１に入力され、他方が安全入力ポート１３２Ａ及び処理部１３２を介してＭＣＵ１２２に入力される。ＭＣＵ１２１，１２２は、相互にデータを比較し、データの一致が確認された場合、そのデータをＭＣＵ１２１からイーサネットＮＷに送信する。
【００２８】
また、イーサネットＮＷからのデータは、ＭＣＵ１２１で受信され、ＭＣＵ１２１からＭＣＵ１２２に渡される。ＭＣＵ１２１，１２２は、データに対して同じ処理を実行し、その処理結果を相互にチェックする。安全性が確認された場合には、そのデータをＭＣＵ１２１から処理部１３１及び安全出力ポート１３１Ｂを介して対象機器２０に出力すると共に、ＭＣＵ１２２から処理部１３２及び安全出力ポート１３２Ｂを介して対象機器２０に出力する
【００２９】
＜ＭＣＵの構成＞
次に、図３Ａを参照して、実施の形態１にかかるＭＣＵ１２１，１２２の構成を説明する。図３Ａに示されるように、実施の形態１にかかるＭＣＵ１２１，１２２は、ＣＰＵ（Central Processing Unit）１２３、ＲＴＯＳ（Real-Time Operating System）アクセラレータ１２４、イーサネットアクセラレータ１２５、Ｉ／Ｆ（Interface）ブロック１２６、及びメモリ１２７を備えている。ＲＴＯＳアクセラレータ１２４は、第１のハードウェアデバイスの一例であり、イーサネットアクセラレータ１２５は、第２のハードウェアデバイスの一例である。
【００３０】
ＣＰＵ１２３は、ソフトウェア群１１に含まれるソフトウェアを使用して、自己の安全Ｉ／Ｏモジュール１０に関する処理を行う。
Ｉ／Ｆブロック１２６は、ハードウェア群１２内の他のハードウェアとのＩ／Ｆ、デジタルＩ／Ｏ１３とのＩ／Ｆ、他チャネルのＭＣＵとのＩ／Ｆ等、各種Ｉ／Ｆを備えている。
メモリ１２７には、イーサネットＮＷから受信されたデータやイーサネットＮＷへ送信するデータ等が記録される。
【００３１】
ＲＴＯＳアクセラレータ１２４及びイーサネットアクセラレータ１２５は、実施の形態１の特徴的な構成要素であり、従来はソフトウェアで行っていたＲＴＯＳ処理及びイーサネット通信処理をそれぞれ実行するために、新たにハードウェア化されたものである。
【００３２】
具体的には、図３Ｂに示されるように、ＲＴＯＳアクセラレータ１２４は、ＲＴＯＳ処理として、ＣＰＵ１２３が実行するタスクの切り替え処理及び起動処理を行うタスク管理部１２４Ａと、タイマ割込みが発生したとき等の同期処理を行う同期通信機能部１２４Ｂと、を少なくとも有する。
また、図３Ｃに示されるように、イーサネットアクセラレータ１２５は、イーサネット通信処理として、メモリコピー処理、チェックサム処理、及びヘッダ並び替え処理をそれぞれ行う、メモリコピー処理部１２５Ａと、チェックサム処理部１２５Ｂと、ヘッダ並び替え処理部１２５Ｃとを有する。
【００３３】
メモリコピー処理は、イーサネットＮＷから受信されたデータやイーサネットＮＷへ送信するデータをメモリ１２７に記録する処理である。
チェックサム処理は、イーサネットＮＷから受信されたデータの誤りを検出する処理である。例えば、チェックサム処理においては、イーサネットＮＷから受信されたデータのチェックサムを算出し、そのデータに付加されたチェックサムと、算出したチェックサムと、を比較し、両者が一致しなければ、そのデータを誤りと検出する。
【００３４】
ヘッダ並び替え処理は、イーサネットフレームからデータを抽出する処理及びイーサネットフレームにデータを格納する処理である。イーサネットＮＷ上では、データは、イーサネットフレームの形式で伝送される。図４に、イーサネットフレームのフレーム構造の例を示す。データは、イーサネットフレームのＥｔｈｅｒＣＡＴ（Control Automation Technology）データ（ＰＤＯ（Process Data Object）データ）領域に格納される。また、ＥｔｈｅｒＣＡＴデータ領域は、データ毎に区分され、データ毎の領域には、ｓａｆｅｔｙ領域及びｎｏｎ−ｓａｆｅｔｙ領域が含まれている。ｓａｆｅｔｙ領域には、機能安全を確保する対象機器２０宛のデータが格納され、ｎｏｎ−ｓａｆｅｔｙ領域には、対象機器２０ではない非対象機器（図示せず）宛のデータが格納される。なお、図４では、イーサネットフレーム形式のうち、一例として、ＥｔｈｅｒＣＡＴ（Control Automation Technology）データを示したが、これに限定されるものではない。
【００３５】
実施の形態１においては、安全Ｉ／Ｏモジュール１０Ａ，１０Ｂは共に、イーサネットＮＷと対象機器２０との間に配置されている。そのため、イーサネットＮＷからイーサネットフレームが受信された場合は、そのイーサネットフレームのｓａｆｅｔｙ領域からデータを抽出する処理を行うことになる。また、イーサネットＮＷにイーサネットフレームを送信する場合は、そのイーサネットフレームのｓａｆｅｔｙ領域にデータを格納する処理を行うことになる。
【００３６】
実施の形態１においては、ハードウェア化されたＲＴＯＳアクセラレータ１２４が、ＲＴＯＳ処理を行うと共に、ハードウェア化されたイーサネットアクセラレータ１２５が、メモリコピー処理、チェックサム処理、及びヘッダ並び替え処理を行う。そのため、図５に示されるように、ＲＴＯＳ処理、メモリコピー処理、チェックサム処理、及びヘッダ並び替え処理をソフトウェアで実行する関連技術と比較して、これらの処理の処理時間が短縮化される。なお、図５において、プロトコル処理は、プロトコルに準拠した通信確立処理等であり、関連技術と同様に、ＣＰＵ１２３が実行する処理となる。
【００３７】
＜ＭＣＵの動作＞
次に、図６を参照して、実施の形態１にかかるＭＣＵ１２１，１２２の動作を説明する。図６に示されるように、ＭＣＵ１２１，１２２は、周期的な動作を繰り返しており、以下で説明するように、１回の動作周期の中で、対象機器２０との間での入出力処理及びイーサネットＮＷとの間での送受信処理を行っている。
【００３８】
ＭＣＵ１２１，１２２は、タイマ割り込みが発生すると、各々のＲＴＯＳアクセラレータ１２４により同期処理を起動する（ステップＳ１１，Ｓ２１）。同期処理は、ＭＣＵ１２１，１２２共に同じ処理であるため、ＭＣＵ１２１を例に挙げて説明する。同期処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、自己のＭＣＵ１２１について、前回の動作周期の処理が完了しているか否かを確認し、完了していない場合は、自己のＭＣＵ１２１を故障と判断し、故障が検知された状態であるＣｒｉｔｉｃａｌ  Ｆａｕｌｔ状態へ遷移する。また、同期処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、他方のＭＣＵ１２２からのクロスコミュニケーションを待つ。クロスコミュニケーションを待っている間に、次のタイマ割り込みが発生した場合は、Ｃｒｉｔｉｃａｌ  Ｆａｕｌｔ状態へ遷移する。つまり、１回の動作周期の間に、クロスコミュニケーションによる同期が取れない場合には、他方のＭＣＵ１２２を故障と判断する。
【００３９】
次に、ＭＣＵ１２１が、ＭＣＵ１２１，１２２での相互監視結果を確認するのと並行して、ＭＣＵ１２１，１２２は、各々のＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＩ／Ｏ処理を起動する（ステップＳ１２，Ｓ２２）。Ｉ／Ｏ処理は、ＭＣＵ１２１，１２２共に同じ処理であるため、ＭＣＵ１２１を例に挙げて説明する。Ｉ／Ｏ処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、対象機器２０からデータを入力し、そのデータが他方のＭＣＵ１２２との間で一致しているかを確認する処理を行う。また、Ｉ／Ｏ処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、イーサネットＮＷから受信し、安全性が確認されたデータを、対象機器２０に出力する処理を行う。なお、Ｉ／Ｏ処理の具体的なフローは後述する。
なお、以降の処理も、ステップＳ１２，Ｓ２２と同様に、ＭＣＵ１２１が、ＭＣＵ１２１，１２２での相互監視結果を確認するのと並行して、行われることになる。
【００４０】
続いて、ＭＣＵ１２１，１２２は、各々のＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＰＤＯ（Process Data Object）受信処理を起動する（ステップＳ１３，Ｓ２３）。ＰＤＯ受信処理の中では、ＭＣＵ１２１のイーサネットアクセラレータ１２５は、イーサネットＮＷからイーサネットフレームを受信する処理、イーサネットフレームからデータを抽出する処理（ヘッダ並び替え処理）、そのデータをメモリ１２７に記録する処理（メモリコピー処理）、及び、そのデータの誤りを検出する処理（チェックサム処理）を実行し、また、ＭＣＵ１２１のＣＰＵ１２３は、イーサネットフレームから抽出したデータを他方のＭＣＵ１２２に渡す処理を行う。ＰＤＯ受信処理の中では、ＭＣＵ１２２のＣＰＵ１２３は、他方のＭＣＵ１２１から渡されたデータを受け取る処理を実行し、また、ＭＣＵ１２２のイーサネットアクセラレータ１２５は、そのデータをメモリ１２７に記録する処理（メモリコピー処理）、及び、そのデータの誤りを検出する処理（チェックサム処理）を実行する。
【００４１】
続いて、ＭＣＵ１２１，１２２は、各々のＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＳａｆｅ  Ｓｔａｃｋ処理を起動する（ステップＳ１４，Ｓ２４）。Ｓａｆｅ  Ｓｔａｃｋ処理は、ＭＣＵ１２１，１２２共に同じ処理であるため、ＭＣＵ１２１を例に挙げて説明する。Ｓａｆｅ  Ｓｔａｃｋ処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、イーサネットフレームから抽出されたデータに対する処理を行い、その処理結果を他方のＭＣＵ１２２との間で相互にチェックして、安全性を確認する。Ｓａｆｅ  Ｓｔａｃｋ処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、上記以外にも、ステータス通知処理、ステート管理処理、コネクション管理処理、ＣＲＣ（Cyclic Redundancy Check）処理等を行う。
【００４２】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＰＤＯ送信処理を起動する（ステップＳ１５）。ＰＤＯ送信処理の中では、ＭＣＵ１２１のイーサネットアクセラレータ１２５は、イーサネットＮＷに送信するデータをメモリ１２７に記録する処理（メモリコピー処理）、そのデータをイーサネットフレームに格納する処理（ヘッダ並び替え処理）、及びそのイーサネットフレームをイーサネットＮＷに送信する処理を実行する。
【００４３】
続いて、ＭＣＵ１２１，１２２は、各々のＲＴＯＳアクセラレータ１２４によりタスク切り替えを行って自己診断処理を起動する（ステップＳ１６，Ｓ２６）。自己診断処理は、ＭＣＵ１２１，１２２共に同じ処理であるため、ＭＣＵ１２１を例に挙げて説明する。自己診断処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、自己のＭＣＵ１２１が正常に動作しているかを診断する。
【００４４】
以上で１回の動作周期の処理が終了する。以上の処理は、タイマ割り込みが発生する度に、繰り返し行われる。
【００４５】
上述したように、実施の形態１においては、ＭＣＵ１２１，１２２は、図６の周期的な動作を繰り返しており、その１回の動作周期の中で各ステップ間に挿入されるタスクの切り替え処理及び起動処理を、ハードウェア化されたＲＴＯＳアクセラレータ１２４により実行している。
【００４６】
そのため、図７に示されるように、ＲＴＯＳアクセラレータ１２４が無い関連技術と比較して、タスクの切り替え処理及び起動処理の処理時間が短縮化されるため、ＭＣＵ１２１，１２２の周期的な動作の１回の動作周期が短縮化される。これにより、ＭＣＵ１２１，１２２において、対象機器２０との間でデータを入出力するＩ／Ｏ処理の周期、及び、イーサネットＮＷとの間でデータを送受信するＰＤＯ受信処理及びＰＤＯ送信処理の周期を短くすることができる。
【００４７】
なお、実際には、図６の各ステップ内の処理は、複数のタスクから構成されており、各ステップ内のタスクの切り替え処理及び起動処理も、ＲＴＯＳアクセラレータ１２４により実行している。そのため、実際には、ＭＣＵ１２１，１２２の動作周期は、図７に示したものよりも短縮化されている。
【００４８】
また、実施の形態１においては、イーサネットＮＷとの間でデータを送受信するＰＤＯ受信処理及びＰＤＯ送信処理において行う、メモリコピー処理、チェックサム処理、及びヘッダ並び替え処理を、ハードウェア化されたイーサネットアクセラレータ１２５により実行している。これにより、ＭＣＵ１２１，１２２において、ＰＤＯ受信処理及びＰＤＯ送信処理自体を高速化できる。
【００４９】
＜ＭＣＵのＩ／Ｏ処理＞
次に、図８を参照して、実施の形態１にかかるＭＣＵ１２１，１２２が行う、図６のステップＳ１２，Ｓ２２のＩ／Ｏ処理を説明する。Ｉ／Ｏ処理は、上述したように、ＭＣＵ１２１，１２２共に同じ処理であるため、ＭＣＵ１２１を例に挙げて説明する。
【００５０】
図８に示されるように、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりＩ／Ｏ電源チェック処理を起動する（ステップＳ２１）。Ｉ／Ｏ電源チェック処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、自チャネルのＩ／Ｏポート（安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂ）と、他チャネルのＩ／Ｏポート（安全入力ポート１３２Ａ及び安全出力ポート１３２Ｂ）と、の状態を一致させるために、自チャネルのＩ／Ｏポートの電源状態をチェックする。
【００５１】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行って出力処理を起動する（ステップＳ２２）。出力処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、イーサネットＮＷから受信し、安全性が確認されたデータを、安全出力ポート１３１Ｂから対象機器２０に出力する。
【００５２】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってテストパルス処理を起動する（ステップＳ２３）。テストパルス処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂにテストパルスを出力し、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂの状態をチェックする。
【００５３】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行って入力処理を起動する（ステップＳ２４）。入力処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、対象機器２０から安全入力ポート１３１Ａを介してデータを入力する。
【００５４】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＩ／Ｏポート評価処理を起動する（ステップＳ２５）。Ｉ／Ｏポート評価処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂの状態を基に、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂが正常又は異常のどちらであるかを評価する。安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂの中に異常と評価されたポートがある場合、そのポートは、ステータスが異常状態に変更され、遮断される。
【００５５】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってデュアルチャネル入力評価処理を起動する（ステップＳ２６）。デュアルチャネル入力評価処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、対象機器２０から入力したデータが他方のＭＣＵ１２２との間で一致しているかを確認する。
【００５６】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＩ／Ｏポート異常解除処理を起動する（ステップＳ２７）。Ｉ／Ｏポート異常解除処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂの中に異常と評価されたポートがある場合、そのポートのステータスを異常状態から正常に戻す。
【００５７】
続いて、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＩ／Ｏクロスチェック処理を起動する（ステップＳ２８）。Ｉ／Ｏクロスチェック処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、対象機器２０との間で入出力したデータや、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂのステータスを、他方のＭＣＵ１２２と交換し、評価する。
【００５８】
その後、ＭＣＵ１２１は、ＲＴＯＳアクセラレータ１２４によりタスク切り替えを行ってＩ／Ｏ  ＬＥＤ処理を起動する（ステップＳ２９）。Ｉ／Ｏ  ＬＥＤ処理の中では、ＭＣＵ１２１のＣＰＵ１２３は、安全入力ポート１３１Ａ及び安全出力ポート１３１Ｂのステータスに応じたＬＥＤ表示を行う。
【００５９】
なお、図８において、ステップＳ２６のデュアルチャネル入力評価処理及びステップＳ２８のＩ／Ｏクロスチェック処理は、ＩＥＣ６１５０８によって制定された機能安全規格に対応するために、対象機器２０が入出力するデータを二重化したことに起因して新たに発生した処理である。
【００６０】
ただし、実施の形態１においては、上述した新たに発生した処理を構成する複数のタスク間の切り替え処理及び起動処理も、ＲＴＯＳアクセラレータ１２４により実行する。そのため、データの二重化に起因して新たに処理が発生しているが、その処理の処理時間を抑えることができる。
【００６１】
＜実施の形態１の効果＞
上述したように、実施の形態１においては、ＭＣＵ１２１，１２２は、ＣＰＵ１２３が実行するタスクの切り替え処理及び起動処理を、ハードウェア化されたＲＴＯＳアクセラレータ１２４により実行する。
【００６２】
これにより、ＭＣＵ１２１，１２２は、対象機器２０との間でデータの入出力処理を行う周期及びイーサネットＮＷとの間でデータの送受信処理を行う周期を短くすることができるため、イーサネットＮＷを介して対象機器２０間で通信するデータを高速に処理することができ、リアルタイム応答性の向上に寄与することができる。
【００６３】
また、実施の形態１においては、ＭＣＵ１２１，１２２は、イーサネットＮＷとの間でのデータの送受信時に行う、メモリコピー処理、チェックサム処理、及びヘッダ並び替え処理を、ハードウェア化されたイーサネットアクセラレータ１２５により実行する。
【００６４】
これにより、ＭＣＵ１２１，１２２は、イーサネットＮＷとの間でのデータの送受信処理自体を高速化できるため、リアルタイム応答性のさらなる向上に寄与することができる。
【００６５】
（２）実施の形態２
図９を参照して、実施の形態２にかかる安全Ｉ／Ｏモジュール１０Ａ，１０Ｂの構成を説明する。
実施の形態１においては、ＭＣＵ１２１，１２２は、外部ペリフェラル（図示せず）を介してシリアル接続され、シリアル通信でクロスコミュニケーションを行っていた。
【００６６】
これに対して実施の形態２においては、図９に示されるように、ＭＣＵ１２１，１２２は、ＭＣＵ１２１，１２２のメモリ１２７同士を直接接続し、双方のメモリ１２７を共有している。そして、ＭＣＵ１２１，１２２のＣＰＵ１２３は、メモリ１２７への書き込み及び読み出しによって、クロスコミュニケーションを行う。例えば、ＭＣＵ１２１のＣＰＵ１２３は、他方のＭＣＵ１２２へ信号（制御信号、データ、処理結果等を含むとする。以下、同じ）を送信する場合、その信号をメモリ１２７へ書き込み、他方のＭＣＵ１２２から信号を受信する場合、その信号をメモリ１２７から読み出す。実施の形態２は、上記の構成以外は、実施の形態１と同様である。
【００６７】
実施の形態１のシリアル通信では、例えば、１６ビットの信号を一度に送ることはできない。これに対して、実施の形態２においては、１６ビットの信号であっても、まとめてメモリ１２７に書き込むことができる。そのため、実施の形態２においては、実施の形態１と比較して、ＭＣＵ１２１，１２２間のクロスコミュニケーションが高速化されるため、リアルタイム応答性のさらなる向上に寄与することができる。
【００６８】
なお、ＭＣＵ１２１，１２２のメモリ１２７のうちの信号の書き込み及び読み出しを行うメモリ１２７、及びそのメモリ１２７におけるメモリ領域は、予め決めておくのが良い。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００７０】
例えば、上記の実施の形態においては、２つのＲＴＯＳアクセラレータ１２４及びイーサネットアクセラレータ１２５を、新たにハードウェア化した。しかし、いずれか一方のみをハードウェア化した構成でもリアルタイム応答性の向上に寄与し得る。そのため、２つのＲＴＯＳアクセラレータ１２４及びイーサネットアクセラレータ１２５のいずれか一方のみをハードウェア化した構成に変更することも可能である。
【符号の説明】
【００７１】
１０Ａ，１０Ｂ  安全Ｉ／Ｏモジュール
１１  ソフトウェア群
１２  ハードウェア群
１２１，１２２  ＭＣＵ
１２３  ＣＰＵ
１２４  ＲＴＯＳアクセラレータ
１２４Ａ  タスク管理部
１２４Ｂ  同期通信機能部
１２５  イーサネットアクセラレータ
１２５Ａ  メモリコピー処理部
１２５Ｂ  チェックサム処理部
１２５Ｃ  ヘッダ並び替え処理部
１２６  Ｉ／Ｆブロック
１２７  メモリ１２７
１３  デジタルＩ／Ｏ
１３１，１３２  処理部
１３１Ａ，１３２Ａ  安全入力ポート
１３１Ｂ，１３２Ｂ  安全出力ポート  ２０Ａ  センサ
２０Ｂ  アクチュエータ
３０  安全ＰＬＣ
４０  ＰＬＣ
【図１】
2017151496.tif 000003
【図２】
2017151496.tif 000004
【図３Ａ】
2017151496.tif 000005
【図３Ｂ】
2017151496.tif 000006
【図３Ｃ】
2017151496.tif 000007
【図４】
2017151496.tif 000008
【図５】
2017151496.tif 000009
【図６】
2017151496.tif 000010
【図７】
2017151496.tif 000011
【図８】
2017151496.tif 000012
【図９】
2017151496.tif 000013