(57)【要約】【課題】バスの競合による調停上のロス時間の発生がない、安全信号処理システムを提供すること。【解決手段】数値制御装置（ＣＮＣ）１０の通信コントローラ１５の内部にＤＭＡコントローラ１６を内蔵し、またＣＰＵ１１，１２に専用のメモリ１３，１４を備えた安全信号処理システムであり、通信コントローラ１５は、各Ｉ／Ｏユニット３０，３２との通信を行うたびに、それぞれ対応するＣＰＵ１１，１２の専用のメモリ１３，１４にＤＭＡ転送を行い、この転送先は通信コントローラ１５の内部の設定レジスタなどに電源ＯＮ時に設定することにより変更でき、転送ルートは他方のＣＰＵや、たとえばサーボコントローラ１８などと接続されていない専用バス１７を使用するので、調停や待ち合わせを行うことなく転送することが出来る。【選択図】図１
2013235300.tif 000002
【特許請求の範囲】
【請求項１】
機械を制御する数値制御装置と複数の入出力ユニットが通信路を介して接続されるシステムにおいて、
前記数値制御装置は、複数の演算処理部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域を有する記憶部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域にデータを転送する機能および該記憶領域からデータを取得する機能を有する通信制御部とを備え、
前記複数の入出力ユニットはそれぞれ通信コントローラを備え、
前記数値制御装置の通信制御部は、転送を行う入出力データについて、予め設定された設定アドレスに従って、前記複数の入出力ユニットと前記複数の演算処理部のそれぞれに割り当てられた記憶領域間の振り分けを行いながら、前記入出力データの転送を行い、一方、前記複数の演算処理部は自身に割り当てられた前記割り当てられた記憶領域にアクセスすることを特徴とする安全信号処理システム。
【請求項２】
機械を制御する数値制御装置と入出力ユニットが通信路を介して接続されるシステムにおいて、
前記数値制御装置は、複数の演算処理部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域を有する記憶部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域にデータを転送する機能および該記憶領域からデータを取得する機能を有する通信制御部とを備え、
前記入出力ユニットは複数の通信制御部を備え、
前記数値制御装置の通信制御部は、転送を行う入出力データについて、予め設定された設定アドレスに従って、前記入出力ユニットの複数の通信制御部と前記複数の演算処理部のそれぞれに割り当てられた記憶領域間の振り分けを行いながら、前記入出力データの転送を行い、一方、前記複数の演算処理部は自身に割り当てられた前記割り当てられた記憶領域にアクセスすることを特徴とする安全信号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置とＩＯユニットを備えたシステムに関し、特に、前記数値制御装置と前記ＩＯユニット間の安全信号の授受を行う安全信号処理システムに関する。
【背景技術】
【０００２】
図５に示されるように、工作機械を制御する数値制御装置（ＣＮＣ）８０は、ＣＰＵ８１、メモリ８３を有する通信コントローラ８２、サーボコントローラ８４、通信コントローラ８５、及び、これらを接続するバス８６を備えている。また、Ｉ／Ｏユニット８７は信号入出用の通信コントローラ８８を備えており、数値制御装置８０および図示しないＩ／Ｏユニットとの間で信号の授受を行う。  
数値制御装置（ＣＮＣ）８０と工作機械との間では、ＤＩ／ＤＯデータ信号（入力信号／出力信号）の入出力を行うために、外部信号入出力用ユニット（Ｉ／Ｏユニット８７）を複数台接続する構成がとられており、通常、数値制御装置８０とＩ／Ｏユニット８７間では、通信路８９を介してＤＩ／ＤＯデータ信号の転送が行われている。このＤＩ／ＤＯデータ信号の中には、非常停止信号やドアスイッチなど危険回避などに必要な安全信号が含まれている。  
ところで、電気電子安全関連システムや機械類制御システムには、安全規格としてＩＥＣ６１５０８やＩＳＯ１３８４９−１などが存在するが、前述の安全信号については、これらの規格に沿って処理及び転送されることが望ましい。
【０００３】
信号の処理については、ＩＥＣ６１５０８のＳＩＬ３（Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ  ３）に準拠の場合、通常二重の中央演算処理装置（プロセッサ（ＣＰＵ））による独立した安全機能の実行が求められる。これは、十分高い平均危険側故障間隔（ＭＴＴｄ：Ｍｅａｎ  Ｔｉｍｅ  Ｔｏ  Ｄａｎｇｅｒｏｕｓ  Ｆａｉｌｕｒｅ）と十分低い危険側故障率（ＰＦＨ：Ｐｒｏｂａｂｉｌｉｔｙ  ｏｆ  Ｆａｉｌｕｒｅ  ｐｅｒ  Ｈｏｕｒ）を得るために、システムに冗長性が求められるからである（特許文献１）。
【０００４】
また、これらの入出力信号のドライバ９０及びレシーバ９１を持つＩ／Ｏユニット８７も、同様に二重化されることが求められる。二重化されたＩ／Ｏユニットと、二重のＣＰＵとを簡単に接続するには、二重化された通信路を用いて、二重化されたＣＰＵと二重化されたＩ／Ｏユニットを接続すれば良い。
【０００５】
図６には、従来の二重化した安全信号処理システムが図示されている。数値制御装置８０は、２つのＣＰＵ８１ａ，８１ｂ、メモリ８３ａを有する通信コントローラ８２ａ、メモリ８３ｂを有する通信コントローラ８２ｂを備えている。Ｉ／Ｏユニット８７ａは通信コントローラ８８ａ、ドライバ９０ａ、レシーバ９１ａを備え、Ｉ／Ｏユニット８７ｂは通信コントローラ８８ｂ、ドライバ９０ｂ、レシーバ９１ｂを備えている。通信コントローラ８２ａにはＩ／Ｏユニット８７ａの通信コントローラ８８ａが通信路８９ａを介して接続されている。また、通信コントローラ８２ｂにはＩ／Ｏユニット８７ｂの通信コントローラ８８ｂが通信路８９ｂを介して接続されている。
【０００６】
しかしながら、一般に通信路の二重化はコストの上昇を伴うため、安全とコストを両立することは難しい。可能であるならば、二重化されない通信路で安全を確保できたほうが良い。二重化されない通信路による安全規格へ準拠した通信方法として、例えばＰＲＯＦＩＢＵＳ  ＮｕｔｅｒｏｒｇａｎｉｚａｔＩ／Ｏｎ  ｅ．Ｖ．によるＰＲＯＦＩｓａｆｅが知られている。  
一般にＦＡシステム環境下における通信では、反復、欠損、挿入、不正順序などのエラーが発生し得るが、ＰＲＯＦＩｓａｆｅでは、通信データに対して、カウント値の付与（“ｓｉｇｎ  ｏｆ  ｌｉｆｅ”）、期待時間値（“Ｗａｔｃｈ−ｄｏｇ”）、送り手と受け手間のコードネーム（“Ｆ−Ａｄｄｒｅｓｓ”）、データ完全性チェック（ＣＲＣ＝Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等が付与されており、これらを転送の受け手がチェックすることにより、エラーの発生に対する安全性の確保を行なっている。この手法によれば、通信路の二重化は不要である（非特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４７１１１９７号公報
【非特許文献】
【０００８】
【非特許文献１】ＰＲＯＦＩｓａｆｅ−Ｓａｆｅｔｙ  Ｔｅｃｈｎｏｌｏｇｙ  ｆｏｒ  ＰＲＯＦＩＢＵＳ  ａｎｄ  ＰＲＯＦＩＮＥＴ  ｓｙｓｔｅｍ  ＤｅｓｃｒｉｐｔＩ／Ｏｎ  ＶｅｒｓＩ／Ｏｎ  ２０  Ｊｕｌｙ  ２００７  ｏｒｄｅｒ  Ｎｕｍｂｅｒ  ４．３４２
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ここで、数値制御装置とＩ／Ｏユニットが接続されたシステムを考える。ＰＲＯＦＩｓａｆｅのような二重化されていない通信路による転送方法を、Ｉ／ＯユニットとＣＰＵ８１ａ間、Ｉ／ＯユニットとＣＰＵ８１ｂ間に適用すれば、二重化されない通信を使って、ＣＰＵ及び入出力信号を２重化した安全信号処理システムを実現することが可能となる。
しかしながら、ＰＲＯＦＩｓａｆｅのような二重化されていない通信路により両者が接続され、二重のＣＰＵにより独立して安全信号が処理されると、結果として二重化されていない通信路に２つのＣＰＵがアクセスを行うことになる。両者が完全に独立したタイミングでアクセスを行う場合、両者のＣＰＵが同時に一つのメモリにアクセスすることで競合が発生し、これを調停するための処理時間によるロスが生じる可能性がある。
【００１０】
特に近年、工作機械の規模は益々増大しており、それに伴って安全信号の数も増大傾向にあるが、この競合発生時の調停は、処理する安全信号の数が増えれば増えるほど発生する可能性も高くなる。  
このように、二重化されていない通信路による接続は、二重化された通信路に比べコストや結線及び構成の容易さにおいて有利である一方で、前述のような競合発生時の調停上のロス時間の発生により、通信やサーボ制御などのスペックがダウンする処理能力の低下に繋がってしまう問題があった。  
そこで本発明は、上記従来技術の問題点に鑑み、二重化しない通信路によりコストを抑えながら、一方でバスの競合による調停上のロス時間の発生がない、安全信号処理システムを提供することを課題とする。
【課題を解決するための手段】
【００１１】
本願の請求項１に係る発明は、機械を制御する数値制御装置と複数の入出力ユニットが通信路を介して接続されるシステムにおいて、前記数値制御装置は、複数の演算処理部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域を有する記憶部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域にデータを転送する機能および該記憶領域からデータを取得する機能を有する通信制御部とを備え、前記複数の入出力ユニットはそれぞれ通信コントローラを備え、前記数値制御装置の通信制御部は、転送を行う入出力データについて、予め設定された設定アドレスに従って、前記複数の入出力ユニットと前記複数の演算処理部のそれぞれに割り当てられた記憶領域間の振り分けを行いながら、前記入出力データの転送を行い、一方、前記複数の演算処理部は自身に割り当てられた前記割り当てられた記憶領域にアクセスすることを特徴とする安全信号処理システムである。  
請求項２に係る発明は、機械を制御する数値制御装置と入出力ユニットが通信路を介して接続されるシステムにおいて、前記数値制御装置は、複数の演算処理部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域を有する記憶部と、前記複数の演算処理部のそれぞれに割り当てられた記憶領域にデータを転送する機能および該記憶領域からデータを取得する機能を有する通信制御部とを備え、前記入出力ユニットは複数の通信制御部を備え、前記数値制御装置の通信制御部は、転送を行う入出力データについて、予め設定された設定アドレスに従って、前記入出力ユニットの複数の通信制御部と前記複数の演算処理部のそれぞれに割り当てられた記憶領域間の振り分けを行いながら、前記入出力データの転送を行い、一方、前記複数の演算処理部は自身に割り当てられた前記割り当てられた記憶領域にアクセスすることを特徴とする安全信号処理システムである。
【発明の効果】
【００１２】
本発明により、二重化しない通信路によりコストを抑えながら、一方でバスの競合による調停上のロス時間の発生がない、安全信号処理システムを提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の安全信号処理システムの実施形態を説明する図である。
【図２】本発明の安全信号処理システムの実施形態におけるＤＭＡ転送を説明する図である。
【図３】本発明における安全信号処理システムにおけるデータ構造を説明する図である。
【図４】本発明の安全信号処理システムの他の実施形態を説明する図である。
【図５】従来の信号処理システムを説明する図である。
【図６】従来の二重化した安全信号処理システムを説明する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面と共に説明する。
図１は本発明の安全信号処理システムの実施形態を説明する図である。図２本発明の安全信号処理システムの実施形態におけるＤＭＡ転送を説明する図である。  
本発明の実施形態の概略を説明する。数値制御装置（ＣＮＣ）１０の通信コントローラ１５の内部にＤＭＡコントローラ１６を内蔵し、また各ＣＰＵ１１，１２に専用のメモリ１３，１４を備えた安全信号処理システムである。この安全信号処理システムにおいて通信コントローラ１５は、各Ｉ／Ｏユニット３０，３２との通信を行うたびに、それぞれ対応するＣＰＵ１１，１２の専用のメモリ１３，１４にＤＭＡ（ダイレクト・メモリ・アクセス）転送を行う。この転送先は通信コントローラ１５に備わったＤＭＡコントローラ１６の内部の設定レジスタなどに電源ＯＮ時に設定することにより変更でき、安全信号システムを使用しない場合には１つのメモリのみを宛先にすることも可能である。この転送ルートは他方のＣＰＵや、たとえばサーボコントローラ１８などと接続されていない専用バス１７を使用するので、調停や待ち合わせを行うことなく転送することが出来る。一方でＣＰＵはサーボ制御などを行いながら都合の良い時間に専用メモリにアクセスすることによりＩ／Ｏデータの更新を行うことが出来るので無駄な待ち合わせなどが発生しない。
【００１５】
工作機械を制御する数値制御装置（ＣＮＣ）１０は、通信路３４を介してＩ／Ｏユニット３０、Ｉ／Ｏユニット３２と接続される。数値制御装置（ＣＮＣ）１０とＩ／Ｏユニット３０とは通信路３４を介してシリアル通信で接続している。また、Ｉ／Ｏユニット３０とＩ／Ｏユニット３２とは通信路３４を介してシリアル通信で接続している。このシリアル通信は安全規格に準拠した通信方式を使用する。
【００１６】
数値制御装置（ＣＮＣ）１０は、演算処理装置であるＣＰＵ１１とＣＰＵ１２、メモリ１３、メモリ１４、通信コントローラ１５を備えている。通信コントローラ１５にはＤＭＡコントローラ１６を備え、通信コントローラ１５とメモリ１３、メモリ１４は専用バス１７で接続されており、いつでも優先的にデータのやり取りが可能となっている。また、ＣＰＵ１１とメモリ１３と対応し、ＣＰＵ１２とメモリ１４と対応し、ＣＰＵ１１はメモリ１４にアクセスできないし、ＣＰＵ１２はメモリ１３にアクセスできない。ＤＭＡコントローラ１６は設定用レジスタに予め設定されたメモリ１３，１４の領域にのみアクセス可能である。
なお、図１には記載していないが、ＣＰＵ１１、ＣＰＵ１２は通信コントローラ１５以外の制御回路などに接続されている。Ｉ／Ｏユニット３０は通信コントローラ３１を備え、Ｉ／Ｏユニット３２は通信コントローラ３３を備える。
【００１７】
数値制御装置（ＣＮＣ）１０は、通信コントローラ１５、通信路３４、通信コントローラ３１を介してＩ／Ｏユニット３０とＤＩ／ＤＯデータ信号（入力信号／出力信号）の送受を行う。Ｉ／Ｏユニット３０は、通信コントローラ３１によって、数値制御装置（ＣＮＣ）１０及びＩ／Ｏユニット３２とシリアル通信によるＤＩ／ＤＯデータ信号（入力信号／出力信号）の送受を行う。ＤＩ／ＤＯデータ信号を外部（工作機械）に入出力するために、Ｉ／Ｏユニット３０はレシーバ３５とドライバ３６、Ｉ／Ｏユニット３２はレシーバ３７とドライバ３８を備えている。
【００１８】
数値制御装置１０の通信コントローラ１５はマスタ、Ｉ／Ｏユニット３０，３２の通信コントローラ３１，３３はスレーブとして動作し、両者はマスタースレーブ方式で一対一の通信を行う。通信コントローラ１５は、外部からの起動信号により一定周期ないし任意のタイミングで自動的に起動することができる。通信コントローラ１５が起動すると、ＤＭＡコントローラ１６によりメモリ１３，１４上の予め決められた領域からＤＯデータを取得する。取得したＤＯデータは、通信によりＩ／Ｏユニット３０，３２側へ転送すると共に、Ｉ／Ｏユニット３０，３２側から取得したＤＩデータをＤＭＡコントローラ１６により、メモリ１３，１４の予め決められた領域へ更新記憶する。
【００１９】
また、ＤＭＡコントローラ１６は、転送するＤＩ／ＤＯデータをそれぞれ、メモリ１３、メモリ１４へ振り分けて転送する。どのＤＩデータをどちらのメモリへ転送するかは、予めＤＭＡコントローラ１６内部の設定レジスタに設定された値によって決まる。一方、２つのＣＰＵ１１，１２は、それぞれ自身のアクセス用に割り当てられたメモリへ、自身のタイミングでアクセスし、それぞれ独立に処理を行う。本安全信号処理システムでは、それぞれのメモリへのアクセスで発生する調停は、ＣＰＵ１１とＤＭＡコントローラ１６、ＣＰＵ１２とＤＭＡコントローラ１６での競合状態のみとなり、ＣＰＵ１１とＣＰＵ１２が直接競合して調停が発生することがない。
【００２０】
次に、本発明の安全信号処理システムにおけるＤＭＡ転送について図２を用いて説明する。ここでは、ＤＯデータについて説明するが、ＤＩデータでも同様である。
ＣＰＵ１１においてＩ／Ｏユニット３０から出力するＤＯデータを作成する。また、ＣＰＵ１２が、ＣＰＵ１１で作成されたＤＯデータと同じＤＯデータをＩ／Ｏユニット３２用に作成する。ＣＰＵ１１，ＣＰＵ１２においてＤＯデータを作成する際に、図３に説明するような、グループＮｏ．５１０、カウンタ５１１、ＣＲＣ５１３を付加する。ＣＰＵ１，ＣＰＵ１２はそれぞれ通信以外の制御も行っているので、メインの制御の空き時間を利用しメモリ１３、メモリ１４へ転送する。
【００２１】
通信コントローラ１５はＣＰＵ１１、ＣＰＵ１２とは非同期で動作している。通信コントローラ１５は、Ｉ／Ｏユニット３０と通信するタイミングになった際に、メモリ１３からＩ／Ｏユニット３０用のデータをＤＭＡコントローラ１６によるＤＭＡ転送を用いて取得する。このときＣＰＵ１１が付加したグループＮｏ．５１０、カウンタ５１１、ＣＲＣ５１３はそのまま取得し、グループＮｏ．５１０、カウンタ５１１、及びＣＲＣ５１３が付加された安全Ｉ／Ｏデータ５１２、つまり、安全通信用データ５０３を通常のＤＯデータと同じように扱う。
【００２２】
通信コントローラ１５は、この安全通信用データ５０３に通常のスタートコード５０１、ヘッダ５０２、フッタ５０４、ＣＲＣ５０５、ストップコード５０６を付加し、Ｉ／Ｏユニット３０の通信コントローラ３１に送信する。
【００２３】
スタートコード５０１、ヘッダ５０２、フッタ５０４、ＣＲＣ５０５、ストップコード５０６を付加した安全通信用データ５０３を受け取ったＩ／Ｏユニット３０の通信コントローラ３１は、通常のスタートコード５０１、ヘッダ５０２、フッタ５０４、ＣＲＣ５０５、ストップコード５０６のチェックを行った後に、さらにグループＮｏ．５１０、カウンタ５１１、ＣＲＣ５１３のチェックを行い異常が無かった場合にはＤＯデータを工作機械（図示せず）に出力する。
【００２４】
またＩ／Ｏユニット３０が図示しない工作機械からＤＩデータを取得しマスタ（数値制御装置１０）に対して送信する場合も、通信コントローラ３１は、安全信号用のグループＮｏ．５１０、カウンタ５１１、ＣＲＣ５１３を付加し、さらに通常の通信で使用しているスタートコード５０１、ヘッダ５０２、フッタ５０４、ＣＲＣ５０５、ストップコード５０６を付加してマスタ（数値制御装置（ＣＮＣ）１０の通信コントローラ１５）に送信する。
【００２５】
Ｉ／Ｏユニット３２の通信コントローラ３３からデータを受け取った通信コントローラ３１は、通常の通信で使用されているスタートコード５０１、ヘッダ５０２、フッタ５０４、ＣＲＣ５０５、ストップコード５０６のチェックを行い、異常がなかった場合、数値制御装置１０のメモリ１３に安全通信用データ５０３を転送する。
【００２６】
ＣＰＵ１１は制御の空き時間を利用しメモリ１３からＩ／Ｏユニット３０の安全通信用データ５０３を取得する。取得した安全通信用データ５０３に付加されているグループＮｏ．５１０、カウンタ５１１、ＣＲＣ５１３をチェックし異常が無かった場合Ｉ／Ｏユニット３０のＤＩデータとして扱う。
【００２７】
上記と同様の方法により、Ｉ／Ｏユニット３２へ転送されるＤＯデータをＣＰＵ１２が作成し、送信し、またＩ／Ｏユニット３２のＤＩデータをＣＰＵ１２が取得する。ＤＯデータに関してはＩ／Ｏユニット３０、３２から同じデータが出力されるので、この値が一致したときのみ機械に出力するような回路を作成する。これにより、信頼性の高いデータを出力することが出来る。また機械からの入力はＩ／Ｏユニット３０、３２の両方に入力するようにする。このＤＩデータはＣＰＵ１１、１２に送られるので、ＣＰＵ１１、１２は互いに取得したデータが一致しているかをチェックし、一致した場合のみ正しいデータとして扱うことにより数値制御装置（ＣＮＣ）は信頼性の高いデータを取得することが出来る。  
各通信コントローラ１５，３１，３３、ＣＰＵ１１，１２ではチェックの際にエラーとなった場合、通信を止める手段、アラームを表示する機能も有している。
【００２８】
図４は本発明の安全信号処理システムの他の実施形態を説明する図である。この実施形態は、Ｉ／Ｏユニット３０に第１の通信コントローラ３１ａと第２の通信コントローラ３１ｂを搭載する例である。図１におけるＩ／Ｏユニット３０，３２を単一のＩ／Ｏユニット３０とし、通信コントローラ３１，３３を通信コントローラ３１ａ，３１ｂとした安全信号処理システムである。
【符号の説明】
【００２９】
１０  数値制御装置
１１  ＣＰＵ
１２  ＣＰＵ
１３  メモリ
１４  メモリ
１５  通信コントローラ
１６  ＤＭＡコントローラ
１７  専用バス
１８  サーボコントローラ
１９  バス
２０  通信コントローラ
３０  Ｉ／Ｏユニット
３１  通信コントローラ
３２  Ｉ／Ｏユニット
３３  通信コントローラ
３４  通信路
３５  レシーバ
３６  ドライバ
３７  レシーバ
３８  ドライバ
８０  数値制御装置
８１  ＣＰＵ
８２  通信コントローラ
８３  メモリ
８４  サーボコントローラ
８５  通信コントローラ
８６  バス
８７  Ｉ／Ｏユニット
８８  通信コントローラ
８９  通信路
９０ａ，９０ｂ  ドライバ
９１ａ，９１ｂ  レシーバ
【図１】
2013235300.tif 000003
【図２】
2013235300.tif 000004
【図３】
2013235300.tif 000005
【図４】
2013235300.tif 000006
【図５】
2013235300.tif 000007
【図６】
2013235300.tif 000008