(57)【要約】【課題】１つのプロセッサ上に駆動制御機能と安全機能とが搭載された構成で、特に駆動制御機能の異常によって安全機能に悪影響が生じることを防止できる。【解決手段】ＣＰＵ２上には、非セーフティ部（駆動制御機能）と二重化されたセーフティ部α、βが搭載されている。各セーフティ部α、βに係るデータ格納領域として、セーフティ部αには５０００番地台、セーフティ部βには６０００番地台が割り当てられている場合、非セーフティ部は、これら各データ格納領域にはアクセス不可となっている。尚、当然ながら、非セーフティ部は、自己に係るデータ格納領域（７０００番地台）にはアクセス（読書）可能となっている。【選択図】図２
2014048849.tif 000002
【特許請求の範囲】
【請求項１】
制御対象装置の駆動制御を行う駆動制御部と前記駆動制御に係る安全制御を行う安全制御部とが１つのプロセッサ上に備えられる安全制御システムであって、
予め前記駆動制御部、安全制御部それぞれに係るデータ格納領域として所定の記憶領域が割り当てられており、
前記駆動制御部がアクセス不可の記憶領域として、前記安全制御部に割り当てられた記憶領域が登録されるメモリ保護情報記憶手段と、
前記駆動制御部によるメモリアクセス実行の際、当該アクセス先と前記メモリ保護情報記憶手段に登録された登録情報を参照し、当該アクセス先が前記アクセス不可の記憶領域であった場合、前記駆動制御部による前記安全制御部に割り当てられた記憶領域へのメモリアクセスを阻止するメモリ保護手段と、
を備えることを特徴とする安全制御システム。
【請求項２】
前記駆動制御部の各処理と前記安全制御部の各処理をそのタスクレベルに応じて実行させると共に、タスクレベルが最も高い時間監視処理を定周期で実行させる割込制御手段を更に有し、
前記時間監視処理は、その時点で未だ実行中の処理があった場合には該処理を強制終了させることを特徴とする請求項１記載の安全制御システム。
【請求項３】
前記駆動制御部の前記タスクレベルは、前記安全制御部の前記タスクレベルよりも低位であることを特徴とする請求項１または２記載の安全制御システム。
【請求項４】
前記時間監視処理は、その時点で未だ実行中の処理が無い場合または前記強制終了に成功した場合にはウォッチドッグタイマをリセット＆再起動し、前記強制終了に失敗した場合には前記ウォッチドッグタイマのタイムオーバーによる所定処理を実行させることを特徴とする請求項２記載の安全制御システム。
【請求項５】
前記安全制御部は二重化されており、
該二重化された安全制御部それぞれに対して前記所定の記憶領域が割り当てられており、
前記メモリ保護情報記憶手段に登録される情報は、前記駆動制御部は前記二重化された各安全制御部に割り当てられた各記憶領域のどちらにもアクセス不可であるが、前記二重化された各安全制御部はどちらも前記駆動制御部に割り当てられた記憶領域にはアクセス可能であることを特徴とする請求項１〜４の何れかに記載の安全制御システム。
【請求項６】
前記メモリ保護情報記憶手段に登録される情報は、更に、前記二重化された各安全制御部の一方は他方の記憶領域にはアクセス不可であることを特徴とする請求項５記載の安全制御システム。
【請求項７】
制御対象装置の駆動制御を行う駆動制御部と前記駆動制御に係る安全制御を行う安全制御部とが１つのプロセッサ上に備えられる安全制御システムにおける該プロセッサであって、
前記駆動制御部がアクセス不可の記憶領域として、前記安全制御部に割り当てられた記憶領域が登録されるメモリ保護情報記憶手段と、
前記駆動制御部によるメモリアクセス実行の際、当該アクセス先と前記メモリ保護情報記憶手段に登録された登録情報を参照し、当該アクセス先が前記アクセス不可の記憶領域であった場合、前記駆動制御部による前記安全制御部に割り当てられた記憶領域へのメモリアクセスを阻止するメモリ保護手段と、
を備えることを特徴とする安全制御システムのプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全制御システム及び安全制御システムのプロセッサに関する。
【背景技術】
【０００２】
例えば、特許文献１には、モータ制御部とセーフティモジュールが分離した構成が提示され、セーフティモジュールを経由して安全機能のうち、ＳＴＯ（ＳＢＢ）、ＳＳ１（ＳＢＢ−Ｄ）、ＳＳ２（ＳＰＭ−Ｄ）、ＳＬＳ（ＳＬＳ−Ｄ）の４種類の安全制御を行う旨が記載されている。
【０００３】
非特許文献１には、パワードライブシステムの１７種の安全機能が定義されている。
非特許文献２には非特許文献１の１７種類の安全機能のうち、ＳＴＯ，ＳＳ１，ＳＳ２，ＳＯＳ，ＳＬＳ，ＳＤＩ，ＳＬＴ，ＳＬＰの８種類の処理シーケンスと通信インタフェースなどが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２９３５９号公報
【非特許文献】
【０００５】
【非特許文献１】IEC61800-5-2 Adjustable speed electrical power drive systems-Safety requirements-Functional
【非特許文献２】Amendment PROFIdrive on PROFIsafe
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、従来では例えば上記特許文献１に示すようにモータ制御部とセーフティモジュール（二重化）が分離された構成となっている。
従来、１つのプロセッサ（ＣＰＵ）上にモータ制御部とセーフティモジュール（二重化）が全て搭載された構成とする場合、例えばモータ制御部の動作に異常が生じた場合に、セーフティモジュールの動作に悪影響を及ぼす場合があった。これは、モータを制御する安全装置に限るものではない。
【０００７】
本発明の課題は、１つのプロセッサ上に駆動制御機能と安全機能とが搭載された構成であっても、問題なく動作するようにでき、特に駆動制御機能の異常によって安全機能に悪影響が生じることを防止できる安全制御システム等を提供することである。
【課題を解決するための手段】
【０００８】
本発明の安全制御システムは、制御対象装置の駆動制御を行う駆動制御部と、前記駆動制御に係る安全制御を行う安全制御部とが、１つのプロセッサ上に備えられる安全制御システムであって、予め前記駆動制御部、安全制御部それぞれに係るデータ格納領域として所定の記憶領域が割り当てられており、前記駆動制御部がアクセス不可の記憶領域として前記安全制御部に割り当てられた記憶領域が登録されるメモリ保護情報記憶手段と、前記駆動制御部によるメモリアクセス実行の際、当該アクセス先と前記メモリ保護情報記憶手段に登録された登録情報を参照し、当該アクセス先が前記アクセス不可の記憶領域であった場合、前記駆動制御部による前記安全制御部に割り当てられた記憶領域へのメモリアクセスを阻止するメモリ保護手段とを有する。
【発明の効果】
【０００９】
本発明の安全制御システム等によれば、１つのプロセッサ上に駆動制御機能と安全機能とが搭載された構成であっても、問題なく動作するようにでき、特に駆動制御機能の異常によって安全機能に悪影響が生じることを防止できる。
【図面の簡単な説明】
【００１０】
【図１】本例の安全モータ制御システムの構成図である。
【図２】（ａ）は非セーフティ部とセーフティ部、（ｂ）はメモリ保護情報の一例である。
【図３】（ａ）、（ｂ）は、各種テーブルの具体例である。
【図４】メモリ保護機能部の処理フローチャート図である。
【図５】割込入力処理部の制御による各プロセスの実行シーケンス図である。
【図６】時間監視処理の処理フローチャート図である。
【図７】（ａ）、（ｂ）は、安全モータ制御システムの概略構成を従来と比較して示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施の形態について説明する。
本発明は、何らかの駆動制御対象の駆動制御機能と、その安全関連制御を行う安全機能（セーフティモジュール）とを、１つのプロセッサ（ＣＰＵ）上に搭載しても問題なく動作させるものである。そして、本例では、駆動制御対象がモータである例を用いるものとするが、この例に限らない。
【００１２】
本例では、モータの駆動制御機能（モータ制御部）とセーフティモジュール（セーフティ部）を一体化する（１個のＣＰＵで実現する）ことで、システム構成を簡素化し以ってコスト削減を実現すると共に、処理効率を向上させることができる。すなわち、モータ制御機能、及び安全機能（安全制御機能、安全監視機能、診断機能；尚、安全機能は二重化してもよい）は、“モータ制御兼セーフティ回路”１に搭載した１個のＣＰＵ２上で処理実現する。これによりＣＰＵの個数を削減でき、システム構成が簡素化し、コスト削減を実現できる。但し、この構成の場合、任意の処理機能の異常（Ｌｏｏｐ等）によって他の処理機能（特に安全機能）が実行できなくなったりメモリ（データ）破壊等の問題が生じる。
【００１３】
この問題に対して、本手法の“モータ制御兼セーフティ回路ＣＰＵ”２は、メモリ保護機能を備える。つまり、モータ制御部のプログラムは、セーフティ部のメモリへの書き込みを出来ないように制御する。尚、セーフティ部のプロブラムはモータ制御部のメモリにもアクセス可能としてもよい。
【００１４】
また、後述する時間監視処理を行うことで、任意の処理機能が暴走してＬｏｏｐしても、他の処理（特に安全機能）が実行出来なくなるようなことはない。更に、本例のモータ制御兼セーフティ回路のＣＰＵでは、安全機能（安全制御機能や安全監視機能等）をモータ制御機能よりも優先処理するように構成してもよい。このようにして、非安全の処理が安全制御に影響することを防止することができる。
【００１５】
また、従来では“モータ制御部＆セーフティ部”を複数のＣＰＵで実現している為に、モータ制御部−セーフティ部間でデータ送受信を行う必要がある場合には（特に、セーフティ部がモータ制御部に何らかの安全指令（モータ停止／減速等）を出す場合など）、ＣＰＵ間の通信（シリアル通信等）が必要であった。つまり、モータ制御部のＣＰＵとセーフティ部のＣＰＵとの間で通信が必要であった。
【００１６】
これに対して、本手法では、プロセッサ間の通信は必要なく、１つのＣＰＵ内でメモリに直接アクセスすることでモータ制御部−セーフティ部間のデータ交換を実現できる。例えば後述するセーフティ部αなどが、非セーフティ部のデータ領域（‘７０００’番地台）に安全指令を書き込めば済む。これによって、モータ制御部−セーフティ部間のデータ交換を高速化できる効果も得られる。
【００１７】
あるいは、従来では、メモリアクセスの制御に関してＤＭＡ（Direct Memory Access）を使用する場合があった。ＤＭＡは、外部とのデータ送受信やプロセッサ間のデータ送受信に用いられており、よく知られたメリットがあるが、ＭＭＵ（Memory Management Unit）などによるメモリ保護機能が効かなくなる（よってメモリ破壊等を防止できない）というデメリットがある。
【００１８】
これに対して本構成では、メモリアクセス（特にモータ制御部−セーフティ部間でのデータ交換）の制御に関してＤＭＡを使用しないことにより（そもそも、上記の通り、プロセッサ間通信ではなくプロセッサ内でのメモリアクセスによって、モータ制御部−セーフティ部間のデータ交換を実現できる。）、メモリアクセスをＣＰＵの制御に一元化でき、処理が簡素化し安全性を向上できる。
【００１９】
また、ＳＴＯ（安全トルクオフ）は、ハードロジックで二重化対応する。これによりハードウェアフォールトトレランスを実現するシステム構成となる。
以下、図１の各構成について詳細に説明する。
【００２０】
図１は、本例の安全モータ制御システムの構成図である。
尚、図示の安全モータ制御システムは、本発明の安全制御システムの一例であり、制御対象がモータである場合の例であるが、この例に限らない。制御対象は、モータ以外であってもよい（例えばカッター、プレスなど）。
【００２１】
本例の安全モータ制御システムは、概略的には、駆動制御対象であるモータ４と、このモータ４を安全に制御する為の“モータ制御兼セーフティ回路”１、給電遮断部３等を有する。尚、ＰＧ(Pulse Generator)６等も有する。
【００２２】
これらの構成のうち、まず、“モータ制御兼セーフティ回路”１以外の構成について説明する。
図には、まず、駆動制御対象の一例であるモータ４を示してある。モータ４は、“モータ制御兼セーフティ回路”１からモータ４へ給電する制御出力により、その回転数が制御される。また、モータ４は、ブレーキ制御部５により制動制御されるブレーキ装置（不図示）を含むものである。
【００２３】
給電遮断部３は、“モータ制御兼セーフティ回路”１からモータ４へ給電する制御出力を遮断する。この遮断の為の構成として、給電遮断部３は図示の構成を有する。すなわち、まず、当該制御出力のモータ４への供給ライン上に、阻止ＳＷ（スイッチ）１９が設けてある。阻止スイッチ１９は二重化されている。よって、図示の２つの阻止スイッチ１９の何れか一方がオフになれば、上記制御出力の遮断が実現されることになる。尚、阻止スイッチ１９は二重化に伴って、その制御の為の構成も二重化されている。すなわち、図示のように、電気的な絶縁を行うＰＨＣ（フォトカップラ）２０や、ＯＲ回路２１等も二重化されている。
【００２４】
各ＯＲ回路２１には、外部からのＳＴＯ入力が入力されると共に、“モータ制御兼セーフティ回路ＣＰＵ”２の安全入出力処理部１７からの出力も入力されて、これら２つの入力の論理和がＯＲ回路２１から出力される。ＯＲ回路２１からの出力は、ＰＨＣ（フォトカップラ）２０を介して、阻止スイッチ１９に入力され、阻止スイッチ１９をＯＮ／ＯＦＦ制御することになる。
【００２５】
上記構成により給電遮断部３は、外部からのＳＴＯ入力または“モータ制御兼セーフティ回路ＣＰＵ”２の安全入出力処理部１７からの出力に応じて、“モータ制御兼セーフティ回路ＣＰＵ”２の制御出力処理部１２からの上記制御出力を、阻止スイッチ１９によって遮断する。
【００２６】
尚、阻止スイッチ１９の動作情報は、“モータ制御兼セーフティ回路ＣＰＵ”２の安全入出力処理部１７へフィードバックする。また、尚、遮断の方法は３レベルなど、方式によって異なった対応をする。
【００２７】
また、上記ＯＲ回路２１からの出力は、ＰＨＣ２０を介して阻止スイッチ１９に入力されるだけでなく、更に、ブレーキ制御５への制御出力にもなる。また、制御出力のフィードバックとして、“モータ制御兼セーフティ回路ＣＰＵ”２の制御出力処理部１２へ出力する。
【００２８】
ブレーキ制御部５は、上記給電遮断部３からの制御入力に従い、上記不図示のブレーキ装置を制動制御する。尚、ブレーキ装置の診断のため、制動制御のフィードバック信号を“モータ制御兼セーフティ回路ＣＰＵ”２の安全入出力処理部１７へ送る。
【００２９】
ＰＧ(Pulse Generator)６は、モータ軸の回転に応じたパルス信号を発生する。当該パルスデータは“モータ制御兼セーフティ回路ＣＰＵ”２の安全入出力処理部１７へ送られる。尚、センサレスベクトル制御の場合は、ＰＧ６の代わりに制御出力電圧と電流を使用するので、ＰＧ６は不要であり、代わりに電流計を設置する。
【００３０】
また、安全関連デバイス１８は、各種センサ等である。つまり、安全関連デバイス１８の入出力としては、例えば温度センサ（ＳＭＴの場合はモータ温度センサ）、電源電圧、外部クロックからの入力、外部ウオッチドックへのリセット出力等がある。
【００３１】
次に、以下、“モータ制御兼セーフティ回路”１について説明する。
“モータ制御兼セーフティ回路”１は、“モータ制御兼セーフティ回路ＣＰＵ”２、安全関連デバイス１８等で構成される。上記の通り、本手法では、モータ制御機能及び安全機能（安全制御機能、安全監視機能、診断機能）は、“モータ制御兼セーフティ回路”１に搭載した１個のＣＰＵ（“モータ制御兼セーフティ回路ＣＰＵ”２）で実現する。
【００３２】
但し、それ故に、モータ制御機能や安全機能の処理に異常が生じた場合の各種問題（Ｌｏｏｐや格納データ異常など）が生じる。この問題に対応する為に特に割込入力処理部７、メモリ保護機能部８等（更にメモリ保護設定処理部９等も）を有している。尚、“モータ制御兼セーフティ回路ＣＰＵ”２において、これらの処理部７、９／機能部８以外の構成は、基本的には従来と略同様であってよい。但し、機能的には略同様であっても、本手法では上述したようにモータ制御部とセーフティモジュールを１つのＣＰＵ２上で実現されている。すなわち、セーフティ部（安全機能）としての各種機能と、非セーフティ部（モータ制御部）としての各種機能とが搭載されている。
【００３３】
非セーフティ部（モータ制御部）としての各種機能は、例えば図示の制御指令入力処理部１０、モータ制御処理部１１、制御出力処理部１２等であり、上記の通り、これらの機能自体は、従来と略同様であって構わない。よって、これらについては以下に簡単に説明する。
【００３４】
制御指令入力処理部１０は、割込入力処理部７によって起動され、外部からの制御指令を入力してモータ制御処理部１１へ伝達する処理である。
モータ制御処理部１１は、割込入力処理部７によって起動され、上記制御指令に対応し制御出力処理部１２へ制御出力の指示を出す。尚、制御方式は、ＰＧ６からの入力により制御するＶｆ制御方式でもよいし、センサレスベクトル制御方式でも良い。但し、センサレスベルトル制御方式の場合には、ＰＧ６の代わりに電流計を設置し、制御電圧と入力電流から演算により制御する。また、モータ制御処理部１１は、例えば安全監視制御機能部１４からの減速指令などに対応した制御を行う。あるいは、安全入出力処理部１７へＳＴＯ診断処理に必要とする制御出力状態を送る。
【００３５】
制御出力処理部１２は、割込入力処理部７によって起動され、上記モータ制御処理部１１の指示により、モータ４の制御に必要な出力を行う。これは、例えば、ＰＷＭ制御を行う場合は、当該処理部１２と給電遮断部３の間にＰＷＭ制御信号を発生するハードウェアを設けてもよく、更に給電遮断部３とモータ４の間にＰＷＭ制御用のスイッチング素子を設けてもよい。
【００３６】
尚、以下の説明では、上記３つの処理部１０，１１，１２を、まとめて、非セーフティ部（またはモータ制御部）等と呼ぶ場合もあるものとする。
また、上記セーフティ部としての各種機能のなかで基本的な機能は、従来と略同様であって構わない。すなわち、セーフティ部としての基本的な機能は、安全指令入力処理部１３、安全監視制御機能部１４、ＣＰＵ診断機能部１６、安全入出力処理部１７などであり、これら自体は従来と略同様であって構わない。
【００３７】
尚、本手法では、これら基本的な機能が二重化されている（後述するセーフティ部α、セーフティ部β）。尚、安全関連処理の基本的な機能が二重化されること自体は、従来でも行っているが、従来ではモータ制御部のプロセッサとは別のプロセッサ（ＣＰＵ）によって安全機能を実現していた。
【００３８】
これに対して本手法では１つのプロセッサ（“モータ制御兼セーフティ回路ＣＰＵ”２）上で後述するセーフティ部α、セーフティ部βを実現し、更に上記非セーフティ部（モータ制御部）も実現する。それ故に生じる問題に対して、上記セーフティ部としての機能として、更に、上述した割込入力処理部７、メモリ保護機能部８等（更にメモリ保護設定処理部９等を設けているものである。
【００３９】
以下、まず、上記セーフティ部としての基本的な機能（１３，１４，１６．１７）について（既存技術であるので）簡単に説明するものとし、詳細な説明は省略する。
安全指令入力処理部１３には、図１に示すように、不図示の外部の構成からのＳＴＯ入力や“ＳＴＯ以外の安全入力”が入力されており、且つ、これらの入力は二重化されている。尚、ＳＴＯ入力は、単に、２重化されたＳＴＯ入力の両方が正常状態である（断線等していない）ことをＣＰＵ２がチェックする為に、ＣＰＵ２に入力しているものである。尚、特に図示しないが、ＳＴＯ入力は、例えば作業員等が外部の不図示の非常停止ボタンを押すことで、（正常であれば）２重化されたＳＴＯ入力の両方ともＯＮとなるように構成している。また、“ＳＴＯ以外の安全入力”とは、例えばＳＳ１等である。
【００４０】
安全指令入力処理部１３は、割込入力処理部７によって起動され、上記二重化されたＳＴＯ入力の診断、上記二重化された“ＳＴＯ入力以外の安全指令入力”の診断を行い、安全監視制御機能部１４へ入力情報や診断結果を出力する。入力はワイヤでの入力または通信での入力のどちらでも良い。通信の場合は必要に応じ、安全通信に対応するIEC61784-3やIEC62280の要件に沿った診断を行う。
【００４１】
安全監視制御機能部１４は、割込入力処理部７によって起動され、上記安全指令入力処理部１３からの出力により、ＳＴＯ，ＳＢＣ以外の安全機能を実行する。また、各安全機能の要件に従い、ＰＧ６からの入力により位置、速度、加速度の監視、モータ制御処理部１１への加減速指示、安全入出力処理部１７への安全出力指示等を行う。尚、センサレスベクトル制御の場合は、ＰＧ６の代わりに設置した電流計からの電流とモータ制御処理部１１からの制御電圧出力を使用して、演算により、必要とする位置、速度、加速度を求める。また、安全停止状態へ移行する場合は、モータ制御処理部１１への加減速指示や安全入出力処理部１７へ停止指示等を行う。
【００４２】
ＣＰＵ診断機能部１６は、割込入力処理部７によって起動され、当該ＣＰＵ２の診断を行う。その際、診断に関連するデータを安全入出力処理部１７とやりとりする。診断方法は、要求される自己診断率（ＤＣ；Diagnosis Coverage)に依存する。診断対象は、メモリ保護装置、バス、割込装置、クロック、ＣＰＵ命令、ＲＯＭ，ＲＡＭ，レジスタ、スタック領域、プログラムシーケンス、クロック、温度、電源などである（何れもＣＰＵ内の不図示の構成やデータ等）。診断の結果、安全停止状態へ移行する場合は、安全監視制御機能部１４に対して、モータ制御処理部１１への加減速指示や安全入出力処理部１７への停止指示等を依頼する。
【００４３】
安全入出力処理部１７は、割込入力処理部７によって起動され、安全関連デバイス１８との入出力処理、給電遮断部３への出力処理、ブレーキ制御部５への出力処理、安全出力処理等を行う。尚、給電遮断部３への出力、および安全出力は、二重化する。尚、給電遮断部３への出力、ブレーキ制御部５への出力に関しては、フィードバックの入力により出力診断をする。また、定周期で、ＳＴＯ診断処理を行う。診断の結果、安全停止状態へ移行する場合は、安全監視制御機能部１４を経由してモータ制御処理部１１への加減速指示等を行う。また安全入出力処理部１７自身への停止指示等を行う。出力はワイヤでの出力または通信での出力のどちらでも良い。通信の場合は必要に応じ、安全通信に対応するIEC61784-3やIEC62280の沿った診断を行う。
【００４４】
また、安全入出力処理部１７は、例えばＰＧ６からの出力等に基づいて異常発生か否かを判定し、異常発生の場合にはＯＲ回路２１に対して上記ＳＴＯ入力に相当する信号を出力する。この様に、外部からの指令またはＣＰＵ２の判断によって、給電遮断部３による給電遮断やブレーキ制御が実行される構成となっている。
【００４５】
そして、本例では、上述した基本的な機能に対して、更に、割込入力処理部７、メモリ保護機能部８、メモリ保護設定処理部９等を設けているものである。
すなわち、“モータ制御兼セーフティ回路ＣＰＵ”２は、メモリ保護機能部８（ＭＭＵ；Memory Management Unitの機能の１つ）を備え、基本的には、非セーフティ部は、セーフティ部のデータ記憶領域へのアクセス（特に書き込み）を行えないようにする。
【００４６】
これによって、メモリ空間に関して、非安全処理（非セーフティ部）による安全処理（セーフティ部）への影響をなくすことができる。つまり、非セーフティ部の処理中に何らかの異常が発生してセーフティ部のデータ記憶領域へのアクセス（特に書込み）が行われることでセーフティ部の処理に異常が生じる、等といった事態を防止できる。
【００４７】
尚、セーフティ部は、非セーフティ部のデータ記憶領域への書き込みを行えるようにする。これは、例えば上記モータ制御処理部１１への停止や加減速指示等を行うためには、当該書込みが必要となるからである。尚、勿論、セーフティ部も非セーフティ部も、どちらも、自己のデータ記憶領域へのアクセスは行えるようにする。
【００４８】
メモリ保護機能部８は、例えば後述する図３の各テーブルを用いて、後述する図４の処理を実行することで、上記機能を実現する。詳しくは後述する。
尚、メモリ保護機能部８は、ＣＰＵ２のメモリ保護をするＣＰＵ内蔵装置である。メモリ保護機能部８は、例えばＭＭＵ（Memory Management Unit）の機能の１つとして実装されている。尚、後述する図３の各テーブルは、メモリ保護設定処理部９によって、例えばユーザにより任意に設定される。
【００４９】
割込入力処理部７は、ＣＰＵ外部のクロックからＣＰＵへ入力、またはＣＰＵ内蔵クロックから定周期で発生する割込入力によって起動される処理を実行する部分であり、例えば後述する図５の割込入力処理や図６の時間監視処理を実行する。これに関しては後に詳しく説明する。
【００５０】
また、割込入力処理部７は、基本的には、ＣＰＵ２に対する外部割込、および内部割込入力を伝達するＣＰＵ内蔵装置であって、割込に応じて各処理を起動する機能を持つ。すなわち、割込入力処理部７は、任意の割込みに応じて、メモリ保護設定処理部９、制御指令入力処理部１０、モータ制御処理部１１、制御出力処理部１２、安全指令入力処理部１３、安全監視制御機能部１４、ＣＰＵ診断機能部１６、安全入出力処理部１７の起動を制御する。
【００５１】
割込入力処理部７は、上記各処理（モータ制御部の各処理と安全制御部の各処理）をその割込優先順位（タスクレベル）に応じて実行させると共に、例えば、割込優先順位が最も高い上記時間監視処理を定周期で実行させる。時間監視処理は、例えば、その時点で未だ実行中の処理があった場合には該処理を強制終了させる。
【００５２】
また、“モータ制御兼セーフティ回路ＣＰＵ”２では、セーフティ部のプログラム（安全制御機能と安全監視機能のプロブラム）を起動する割り込み優先順位を、非セーフティ部（モータ制御部）のプロブラムを起動する割り込み優先順位よりも優先順位を高くする。これにより、非安全の処理が安全制御に影響することをなくすことができ、非安全の機能部であるモータ制御部と安全の機能部であるセーフティ部とを、時間的に分離することができる。
【００５３】
“モータ制御兼セーフティ回路ＣＰＵ”２は、不図示の内蔵メモリに予め所定のアプリケーションプログラムが記憶されており、当該ＣＰＵ２がこのアプリケーションプログラムを実行することにより上述した各種処理部／機能部の処理機能が実現される。すなわち、上記割込入力処理部７、メモリ保護機能部８、メモリ保護設定処理部９、制御指令入力処理部１０、モータ制御処理部１１、制御出力処理部１２、安全指令入力処理部１３、安全監視制御機能部１４、ＣＰＵ診断機能部１６、安全入出力処理部１７等の各種処理機能が実現される。特に、当該ＣＰＵ２が上記アプリケーションプログラムを実行することによって、後述する図４や図６に示すフローチャート図の処理が実行される。
【００５４】
また、上記不図示のメモリには、後述する図３に示す各種テーブル３０、４０等も記憶される。
以下、図２、図３、図４、図５、図６を参照して、上記割込入力処理部７、メモリ保護機能部８、メモリ保護設定処理部９等について、更に詳細に説明する。
【００５５】
まず、本例では上述した通り１つのＣＰＵ（“モータ制御兼セーフティ回路ＣＰＵ”２）上に、セーフティ部としての各種機能と、非セーフティ部（モータ制御部）としての各種機能とが搭載されているが、更にセーフティ部に関しては図２（ａ）に示すように二重化されている。
【００５６】
すなわち、図２（ａ）に示すように、“モータ制御兼セーフティ回路ＣＰＵ”２上には、概略的には非セーフティ部とセーフティ部αとセーフティ部βの３つの機能部が搭載されている。セーフティ部αとセーフティ部βとは、同一の処理を実行する機能部であり、且つ、入力も同じである。つまり、セーフティ部αの入力である図示の安全入力（１）と、セーフティ部βの入力である図示の安全入力（２）とは、同一である。従って、正常な状態であれば、セーフティ部αの処理結果である図示の安全出力（１）と、セーフティ部βの処理結果である図示の安全出力（２）とは、同一となるはずである。これを利用して、セーフティ部αとセーフティ部βとが相互に入力や出力（処理結果）をチェックして一致／不一致を確認することで、正常な否かをチェックできることになる。
【００５７】
セーフティ部αとセーフティ部βは同じ処理をセーフティ部αとセーフティ部βそれぞれ独立に行うことにより、並列二重化処理（Dual処理）を実現する。セーフティ部αとセーフティ部βの独立性を高めるため、例えばセーフティ部αの処理が暴走することでセーフティ部βのデータを破壊することを防止するため、セーフティ部αからセーフティ部βへのデータ書き込み、及び、セーフティ部βからセーフティ部αへのデータ書き込みを禁止している。
【００５８】
尚、上記安全入力（１）、（２）は、基本的には、図１に示す“ＳＴＯ以外の安全入力”（例えばＳＳ１など）である。
尚、上述したように、セーフティ部としての基本的な機能は、安全指令入力処理部１３、安全監視制御機能部１４、ＣＰＵ診断機能部１６、安全入出力処理部１７などであり、これら自体は従来と略同様であって構わない。また、上記セーフティ部αとセーフティ部βは、セーフティ部としての基本的な機能部分であるものと見做してもよい。
【００５９】
そして、例えば上記メモリ保護機能部８が、予め設定される例えば図２（ｂ）や図３に示すようなメモリ保護情報に基づいて、例えば後述する図４の処理を実行することで、メモリ空間に関して非安全処理（非セーフティ部）による安全処理（セーフティ部）への影響をなくすことができる。
【００６０】
図２（ｂ）に、メモリ保護情報の一例を示す。尚、実際には、後述する図３（ａ）のアドレス変換テーブル３０と図３（ｂ）のアクセス不可テーブル４０とによって、メモリ保護情報が構成されることになる。
【００６１】
図２（ｂ）には、まず、各プロセス（非セーフティ部、セーフティ部α、セーフティ部β）毎に予め割り当てられている記憶領域を示してある。すなわち、セーフティ部αのプログラム格納領域として‘１０００’番地台（図示の‘０ｘ’は省略する；他も同様）が割り当てられている。セーフティ部βのプログラム格納領域として‘２０００’番地台が割り当てられている。非セーフティ部のプログラム格納領域として‘３０００’番地台〜‘４０００’番地台が割り当てられている。ＣＰＵ２は、例えば‘１０００’番地台の記憶領域に格納されているプログラムを読出し・実行することで、セーフティ部αの処理機能を実現させる。
【００６２】
また、セーフティ部αに係るデータ格納領域として‘５０００’番地台が割り当てられている。セーフティ部βに係るデータ格納領域として‘６０００’番地台が割り当てられている。非セーフティ部に係るデータ格納領域として‘７０００’番地台が割り当てられている。
【００６３】
そして、上記各プロセス（非セーフティ部、セーフティ部α、セーフティ部β）毎のメモリ領域に対して、図示のように各プロセス（非セーフティ部、セーフティ部α、セーフティ部β）毎にメモリ保護情報が設定されている。これは、例えば上記メモリ保護設定処理部９の機能によって、ユーザ等が任意に設定するものである。
【００６４】
すなわち、まず、セーフティ部αに関する図示のメモリ保護情報によれば、セーフティ部αは、プログラム格納領域に関しては全領域について読込可能となっている（換言すれば書込みは不可）。つまり、セーフティ部αは、‘１０００’番地台、‘２０００’番地台、‘３０００’番地台、‘４０００’番地台は、リードオンリーのアクセスが可能となっている。尚、これは、図示の通り、セーフティ部βと非セーフティ部に関しても同様である。つまり、プログラム格納領域に関しては、非セーフティ部、セーフティ部α、セーフティ部βの全てが、全領域について（自己の領域だけでなく他の領域も）リードオンリーのアクセスが可能となっている。リードオンリーであるので、書込みよるデータ破壊等は生じないからである。
【００６５】
一方で、データ格納領域に関しては下記の通りとなっている。
すなわち、まず、セーフティ部αは、自己のデータ格納領域である‘５０００’番地台に関しては、当然、読書可（リードライト可能）となっているが、非セーフティ部のデータ格納領域である‘７０００’番地台に関しても、読書可（リードライト可能）となっている。これは、非セーフティ部に対して安全の為の何らかの指令を出す為には、非セーフティ部のデータ格納領域への所定の書込みを行う必要があるからである。その一方で、セーフティ部αは、セーフティ部βのデータ格納領域である‘６０００’番地台に関しては、アクセス不可となっている。
【００６６】
また、セーフティ部βも、自己のデータ格納領域である‘６０００’番地と非セーフティ部のデータ格納領域である‘７０００’番地台は、読書可（リードライト可能）となっているが、セーフティ部αのデータ格納領域である‘５０００’番地台に関しては、アクセス不可となっている。
【００６７】
また、非セーフティ部は、自己のデータ格納領域である‘７０００’番地のみ読書可（リードライト可能）となっており、セーフティ部α、βのデータ格納領域である‘５０００’番地台、‘６０００’番地台に関しては、アクセス不可となっている。これによって、たとえ非セーフティ部が処理実行中に異常となっても、セーフティ部のデータ格納領域に勝手にアクセスしてデータ書き換え等を行うような事態にはならず、安全機能に悪影響を及ぼすようなことはなくなる。
【００６８】
既に述べたように、図２（ｂ）に示すようなメモリ保護情報は、実際には図３（ａ）、図３（ｂ）に示す２つのテーブル３０、４０の形で設定・登録されている。
図３（ａ）に示すように、アドレス変換テーブル３０は、論理アドレス３１と物理アドレス３２とが対応付けられると共に、これらアドレスに対してメモリ保護３３の情報が設定されている。メモリ保護３３は、図示の例では‘０’が“読込可（リードオンリー）”、‘１’が“読書可（リードライト可）”を意味する。論理アドレス３１と物理アドレス３２は、例えば１６進数の１０００番地単位で設定される。つまり、図示の例では、例えば論理アドレス３１が‘２０００’番地台は‘０’（リードオンリー）、‘５０００’番地台は‘１’（リードライト可）となっている。
【００６９】
“モータ制御兼セーフティ回路ＣＰＵ”２上では、任意のプロセス実行中にメモリアクセスを行う場合に生成されたアドレス（論理アドレス）は、アドレス変換テーブル３０を参照することで物理アドレスに変換されて、この物理アドレスによってメモリへアクセスすることになる。更に、その際に、当該アドレスに対応するメモリ保護３３を参照することで、アクセス方法がリードオンリーであるのかリードライト可であるのかを判別したうえで、判別結果に応じたメモリアクセス制御を行う。但し、本手法では、更に図３（ｂ）のアクセス不可テーブル４０も参照することで、メモリアクセスを行うプロセスが上記アドレス（論理アドレス）に対応する記憶領域にアクセス可であるか否かを判別することでメモリ保護制御をする。このメモリ保護制御は、例えばメモリ保護機能部８が実行するものであり、その処理例を図４に示し、後に説明するものとし、その前に、図３（ｂ）のアクセス不可テーブル４０について説明する。
【００７０】
図３（ｂ）のアクセス不可テーブル４０は、論理アドレス４１、セーフティ部α４２、セーフティ部β４３、非セーフティ部４４の各データ項目より成る。論理アドレス４１は、上記論理アドレス３１と同様、１６進数の１０００番地単位で設定される。
【００７１】
そして、この１０００番地単位のメモリ記憶領域毎に、上記各プロセスがその記憶領域にアクセス可能か否かが設定されるものである。例えば、セーフティ部α４２のデータ項目欄には、上記１０００番地単位の記憶領域毎に上記セーフティ部αがアクセス可能か否かが設定される。尚、ここでは、‘０’がアクセス可、‘１’がアクセス不可を意味する。
【００７２】
これより、図示の例では、例えばセーフティ部αは、‘６０００’番地台のみがアクセス不可であり、それ以外の記憶領域（‘１０００’番地台、‘２０００’番地台、‘３０００’番地台、‘４０００’番地台、‘５０００’番地台、‘７０００’番地台）は、アクセス可能となっている。そして、これらアクセス可能な各記憶領域に関して、更に、上記アドレス変換テーブル３０を参照することで、読込可（リードオンリー）であるか読書可（リードライト可能）であるかを識別できる。
【００７３】
ここで、図４を参照して、上記メモリ保護機能部８の処理例について説明する。
図４の処理は、任意のプロセスが任意のメモリアクセスを試みる際に起動される。
図４において、まず、メモリアクセスを行うプロセス（非セーフティ部、セーフティ部α、セーフティ部βの何れか）を識別すると共に（ステップＳ１１）アクセス先の論理アドレスを取得する（ステップＳ１２）。そして、アクセス不可テーブル４０を参照することで、上記ステップＳ１１で識別したプロセスが、当該アクセス先の論理アドレスに対応する記憶領域にアクセス可能であるか否かを判別する（ステップＳ１３、Ｓ１４）。
【００７４】
もし、アクセス不可であった場合には（ステップＳ１４、ＹＥＳ）、所定のＣＰＵ異常処理を実行する（ステップＳ１７）。当該ＣＰＵ異常処理については特に説明しない。
一方、もしアクセス可能であるならば（ステップＳ１４，ＮＯ）、上記アドレス変換テーブル３０から上記ステップＳ１２で取得した倫理アドレスに対応する物理アドレス３２とメモリ保護３３の情報を取得して（ステップＳ１５）、これら取得した情報をＭＭＵにセットする（ＬＤＴＬＢ）。
【００７５】
尚、上記ステップＳ１１の処理は、具体的には例えば、ＭＭＵのＰＴＥＨ（ページ・テーブル・エントリの上位レジスタ）のＡＳＩＤ（０〜７ビット）の情報を取得するものである。また、上記ステップＳ１２の処理は、具体的には例えば、ＭＭＵのＰＴＥＨ（ページ・テーブル・エントリの上位レジスタ）のＶＰＮ（１０〜１５ビット）の情報を取得するものである。また、上記ステップＳ１６の処理は、具体的には例えば、ＭＭＵのＰＴＥＬ（ページ・テーブル・エントリの下位レジスタ）のＰＰＮ（１０〜１５ビット）、ＰＲ５〜６ビット）に、上記取得した物理アドレス３２とメモリ保護３３のデータをセットするものである。
【００７６】
図２（ｂ）や図３（ａ）、（ｂ）に示すメモリ保護情報に基づいて、図４の処理を実行することで、例えば、非セーフティ部（モータ制御部）がセーフティ部（セーフティ部α、セーフティ部β）のデータ格納領域にアクセスしようとしても、ステップＳ１４の判定がＹＥＳとなるので、リードもライトも出来ないことになる。また、非セーフティ部（モータ制御部）は、セーフティ部（セーフティ部α、セーフティ部β）のプログラム格納領域については、リードは出来てもライトは出来ないことになる（ステップＳ１６でセットされるメモリ保護３３の情報は、‘０’（リードオンリー）となる）。
【００７７】
一方、セーフティ部（セーフティ部α、セーフティ部β）は、どちらも、非セーフティ部のデータ格納領域にはアクセス可能であるが、他方のセーフティ部（セーフティ部αから見れば、セーフティ部βが他方のセーフティ部）のデータ格納領域にはアクセスできない（リードもライトも不可）。
【００７８】
次に、割込入力処理部７により処理について、図５、図６を参照して説明する。
図５は、割込入力処理部７の制御による各プロセスの実行シーケンス図である。
図６は、割込入力処理部７によって定周期で実行される時間監視処理の処理フローチャート図である。
【００７９】
まず、図５について説明する。
図５の例では、セーフティ部（セーフティ部α、セーフティ部β）の処理を、ＣＰＵ診断処理と、“ＣＰＵ診断処理以外の処理”とに分けている。尚、ＣＰＵ診断処理は、上記ＣＰＵ診断機能部１６によって実現される。また、“ＣＰＵ診断処理以外の処理”は、上記安全指令入力処理部１３、安全監視制御機能部１４、安全入出力処理部１７によって実現される。これら処理の詳細については特に説明しない（既存技術であるので）。
【００８０】
また、非セーフティ部の処理も、図では２つに分けられており、図示の非セーフティ部処理Ａと、非セーフティ部処理Ｂとから成るが、これらの分け方には特に意味はないので特に説明しない。
【００８１】
また、図示の例では、上記各種処理の割込優先順位は、優先順位が高いものから順に、時間監視処理→“ＣＰＵ診断処理以外の処理”→非セーフティ部処理Ａ→ＣＰＵ診断処理→非セーフティ部処理Ｂとなっている。必ずもこの例に限るものではないが、時間監視処理は最も優先順位が高いものとすることが望ましい。そして、時間監視処理は予め決められた定周期で実行される。これによって、セーフティ部または非セーフティ部が処理実行中に暴走してループ状態になったとしても、時間監視処理が定周期で実行されることで、後述するように強制終了することが可能となる。これにより、非安全の処理が安全制御に影響することをなくすことができる。
【００８２】
また、セーフティ部αまたはセーフティ部βが暴走してループ状態になっても、セーフティ部の他方（セーフティ部αが暴走したらセーフティ部β）に影響することをなくすことができ、他方によるセーフティ処理を継続することができる。
【００８３】
尚、上記各種処理の割込優先順位は、優先順位が高いものから順に、時間監視処理→“ＣＰＵ診断処理以外の処理”→ＣＰＵ診断処理→非セーフティ部処理Ａ，Ｂ等としてもよい。つまり、セーフティ部は非セーフティ部よりも常に優先順位が高いものとしてもよい。これによって、非セーフティ部が処理実行中に異常（ＬＯＯＰ等）になったとしても、セーフティ部の処理実行タイミングになれば（割込みが生じれば）、セーフティ部が実行されることになる。つまり、セーフティ部が非セーフティ部の異常による悪影響を受けないようにできる。
【００８４】
以下、図６に示す時間監視処理の処理フローチャート図について説明する。
図示の例の時間監視処理では、まず、定周期内の全ての処理（“ＣＰＵ診断処理以外の処理”、非セーフティ部処理Ａ、ＣＰＵ診断処理、非セーフティ部処理Ｂ）が完了しているか否かを確認・判定する（ステップＳ２１，Ｓ２２）。これは例えば、正常状態であれば定周期内に全ての処理が完了するように予め設定されているものである。但し、ステップＳ２１の処理は、単に現在実行中の処理があるか否かをチェックするだけであってもよい（現在実行中の処理があれば、ステップＳ２２の判定はＮＯ）。
【００８５】
そして、定周期内の全ての処理が完了している場合には（ステップＳ２２，ＹＥＳ）、ウォッチドッグタイマをリセットし（ステップＳ２３）、ウォッチドッグタイマに所定時間を設定して再起動する（ステップＳ２４）。この所定時間は、基本的には、次に時間監視処理が起動されるまでの時間よりも長い時間とする。つまり、正常状態であればタイムオーバーとなる前に次の時間監視処理のステップＳ２３でリセットされるように、上記所定時間が設定される。
【００８６】
一方、定周期内の全ての処理が完了していない場合には（ステップＳ２２，ＮＯ）、処理実行中の（暴走している可能性が高い）プロセスの強制終了を試みる（ステップＳ２５）。そして、もし、強制終了が成功したならば（ステップＳ２６，ＹＥＳ）、上記ステップＳ２３，Ｓ２４の処理を実行する。
【００８７】
一方、もし強制終了が失敗したならば（ステップＳ２６，ＮＯ）、そのまま何も行わないことで、上記ウォッチドッグタイマがタイムオーバーするのを待つ。ウォッチドッグタイマ・タイムオーバーによって、予め設定されている“ウォッチドッグによるＣＰＵ異常処理”（ここでは特に説明しない）が実行されることになる。これによって、例えば、モータ４が停止される等の安全の為の制御が実行されることになる。
【００８８】
図７に、安全モータ制御システムの概略構成を従来と比較して示す。すなわち、図７（ａ）に従来の概略システム構成、図７（ｂ）に本例の概略システム構成を示す。
図７（ａ）に示すように、従来でも給電遮断部の二重化やセーフティモジュールの二重化は行われていた。しかし、モータ制御部、セーフティモジュール（安全制御部）それぞれの機能を専用プロセッサ（ＣＰＵ）により実現していた。つまり、複数のプロセッサ（ＣＰＵ）が必要であった。
【００８９】
この様にしていた理由は、モータ制御部と安全制御部という複数の機能が互いに影響を与える（タスク間の影響）事態を防止するためである。換言すれば、１つのＣＰＵ上に複数の機能を搭載する構成の場合、従来ではタスク間の影響を取り去ることが難しかった。
【００９０】
タスク間の影響とは、例えば、モータ制御部（モータ制御タスク）の処理実行中に何らかの不具合が生じた為に永久ループが発生した場合、セーフティモジュール（安全制御タスク）が実行されなくなる為、安全機能が働かなくなること等である。あるいは、モータ制御部（モータ制御タスク）の処理実行中に何らかの不具合が生じた為に、セーフティモジュール（安全制御タスク）のデータ格納領域にアクセスしてデータを書き換え等した為に（メモリ破壊）、セーフティモジュール（安全制御タスク）が正常に動作しなくなること等である。
【００９１】
これに対して、本手法では、上述した割込入力処理部７、メモリ保護機能部８等を設けることで、上記タスク間の影響を除去し、以って図７（ｂ）に示すような１つのＣＰＵ上にモータ制御部と安全制御部とを搭載する構成でも問題なく動作するようにしている。すなわち、非セーフティ部、セーフティ部α、セーフティ部βの３つの機能それぞれに専用のメモリ領域を割り当てると共に、他の機能のメモリ領域へのアクセスに関しては一定の制限を課している。特に、非セーフティ部がセーフティ部α、βのデータ格納領域にアクセスするのを禁止している。
【００９２】
また、上述した“時間監視処理”を最も高い優先順位で設けることにより、任意の機能に何らかの不具合が生じて永久ループが発生した場合でも、強制的に処理終了して他の機能を実行可能とすることができる。
【００９３】
上述した様に、本手法によれば、モータ制御部と（例えば二重化された）安全制御部とを１つのＣＰＵ上に搭載しても、問題なく（特に安全機能に問題が生じることなく）動作させることができるようになる。ＣＰＵの数を減少させたことで（１つのみで済むようにする）、構成の簡素化、コスト削減などの効果が得られるようになり、また安全性の向上などの効果も得られるようになる。
【００９４】
更に、従来の複数プロセッサを用いる構成では、非セーフティ部−セーフティ部間のデータ交換のためにプロセッサ間のデータ送受信が必要となり、ＤＭＡを使用する場合もあったが、本手法では１つのプロセッサ内で直接メモリアクセスすることで非セーフティ部−セーフティ部間のデータ交換を実現でき、処理の高速化を実現でき、またメモリアクセスをＣＰＵの制御に一元化でき、安全性を向上させることができる。
【００９５】
尚、ＳＴＯ入力および給電遮断部３のオンライン診断は、“モータ制御兼セーフティ回路ＣＰＵ”２で実行する。JIS B 9705-1 2011（ISO13849と同等）表１０には、カテゴリ４として、「いずれの部分の単一の障害も安全機能の喪失を招かない。かつ，単一障害は，安全機能に対する次の動作要求のとき，またはそれ以前に検出される。」と記載されている。ＳＴＯ入力および給電遮断部３が二重化されており、オンライン診断が可能な構成であることから、ＳＴＯは、JIS B 9705-1のカテゴリ４アーキテクチャを満たすことができる。
【００９６】
同様に、ＳＢＣは、ＳＴＯ入力を経由し、給電遮断部３を経由し、ブレーキ制御部５へ出力する。ＳＴＯ入力および給電遮断部３、およびブレーキ制御部５のオンライン診断は、“モータ制御兼セーフティ回路ＣＰＵ”２で実行する。JIS B 9705-1 表１０には、カテゴリ４として、「いずれの部分の単一の障害も安全機能の喪失を招かない。かつ，単一障害は，安全機能に対する次の動作要求のとき，またはそれ以前に検出される。」と記載されている。ＳＴＯ入力および給電遮断部３およびブレーキ制御部５が二重化されており、オンライン診断が可能な構成であることから、ＳＢＣもJIS B 9705-1のカテゴリ４アーキテクチャを満たすことができる。
【００９７】
自動車安全ISO26262のシステム構成要件は、ＡＳＩＬ（Automotive Safety Integrity Level）に対応した、Single Point Fault Metric とLatent Fault Metricを満たすことである。Single Point Fault MetricとLatent Fault Metricは共に、エレメントに対する自己診断率；ＤＣ(Diagnosis Coverage)に依存する。ＳＴＯとＳＢＣの診断は“モータ制御兼セーフティ回路ＣＰＵ”２で実行している。
【符号の説明】
【００９８】
１  モータ制御兼セーフティ回路
２  モータ制御兼セーフティ回路ＣＰＵ
３  給電遮断部
４  モータ
５  ブレーキ制御部
６  ＰＧ
７  割込入力処理部
８  メモリ保護機能部
９  メモリ保護設定処理部
１０  制御指令入力処理部
１１  モータ制御処理部
１２  制御出力処理部
１３  安全指令入力処理部
１４  安全監視制御機能部
１６ＣＰＵ診断機能部
１７  安全入出力処理部
１８  安全関連デバイス
１９  阻止ＳＷ（スイッチ）
２０  ＰＨＣ（フォトカップラ）
２１  ＯＲ回路
３０  アドレス変換テーブル
３１  論理アドレス
３２  物理アドレス
４０  アクセス不可テーブル
４１  論理アドレス
４２  セーフティ部α
４３  セーフティ部β
４４非セーフティ部
【図１】
2014048849.tif 000003
【図２】
2014048849.tif 000004
【図３】
2014048849.tif 000005
【図４】
2014048849.tif 000006
【図５】
2014048849.tif 000007
【図６】
2014048849.tif 000008
【図７】
2014048849.tif 000009