(57)【要約】【課題】実際の要件及び用途を満たすような高い効率を有する改良型のＰＬＣを提供すること。【解決手段】複数のＰＬＣ機能を有するプログラマブルロジックプロセッサ（ＰＬＣ）を開示する。本ＰＬＣは、複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、ＰＬＣ機能の各々に割り当てられると共に該メモリに結合された１つまたは複数のプロセッサと、を含む。これらのＰＬＣ機能は並列に動作する。ＰＬＣを動作させる方法並びに複数のプロセッサを備えたＰＬＣシステムも開示している。【選択図】図３
2013506911.tif 000002
【特許請求の範囲】
【請求項１】
複数のＰＬＣ機能が可能なプログラマブルロジックコントローラ（ＰＬＣ）であって、
ＰＬＣ機能の各々に割り当てられた１つまたは複数のプロセッサと、
前記プロセッサに結合されると共に複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、を備えており、
ＰＬＣ機能のうちの少なくとも２つが並列に動作する、プログラマブルロジックコントローラ（ＰＬＣ）。
【請求項２】
相互の通信を可能にするようにＰＬＣ機能の各々に対応するプロセッサを接続している複数のチャンネルをさらに備える請求項１に記載のＰＬＣ。
【請求項３】
前記メモリはその各々が１つのＰＬＣ機能と直接関連付けされている複数の第１及び第２のメモリを備えていると共に、該第１のメモリはプログラム及び中間結果を配置させかつ該第２のメモリはプロセッサ間の通信中のデータフロー変数を配置させている、請求項１に記載のＰＬＣ。
【請求項４】
第２のメモリをその間接的に関連するＰＬＣ機能に対応したプロセッサとそれぞれ接続している複数のチャンネルをさらに備える請求項３に記載のＰＬＣ。
【請求項５】
前記プロセッサはシンクフェーズとランフェーズを周期的に循環すると共に、ＰＬＣ機能の各々に対応するプロセッサはシンクフェーズでは互いにデータを交換しかつランフェーズではメモリ内に格納されたプログラムを実行する、請求項１に記載のＰＬＣ。
【請求項６】
前記プロセッサは、すべてのプロセッサが対応するプログラムを完了したときにランフェーズからシンクフェーズに同時に切替わる、請求項５に記載のＰＬＣ。
【請求項７】
前記プロセッサは、事前定義の最大時間期間に到達したときにランフェーズからシンクフェーズに同時に切替わる、請求項５に記載のＰＬＣ。
【請求項８】
前記メモリは、その各々が１つのＰＬＣ機能と関連付けされている複数のプログラムメモリと、第１のメモリ及び第２のメモリを備えたｐｉｎｇ−ｐｏｎｇバッファと、を含む、請求項１に記載のＰＬＣ。
【請求項９】
前記プロセッサは、第１のメモリ及び第２のメモリへのアクセスを交替式に有するＩＯ走査プロセッサ及び論理解法プロセッサを含む、請求項８に記載のＰＬＣ。
【請求項１０】
第１のメモリ及び第２のメモリをプロセッサとそれぞれ接続していると共にプロセッサによる第１のメモリまたは第２のメモリへのアクセスを制御している２つの調停器をさらに備える請求項８に記載のＰＬＣ。
【請求項１１】
前記調停器に接続させた保護機構をさらに備えると共に、該保護機構は２つ以上のプロセッサが第１のメモリまたは第２のメモリの同じ１つのエリアにアクセスするときに該プロセッサに対する優先度を設定する、請求項１０に記載のＰＬＣ。
【請求項１２】
前記第１のメモリがｐｉｎｇバッファでありかつ前記第２のメモリがｐｏｎｇバッファであると共に、該ｐｉｎｇバッファとｐｏｎｇバッファは入力データ及び出力データを格納するために同様の空間を有する、請求項８に記載のＰＬＣ。
【請求項１３】
複数のＰＬＣ機能が可能であるような、複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリとＰＬＣ機能の各々に割り当てられると共に該メモリに結合された１つまたは複数のプロセッサとを備えるプログラマブルロジックコントローラ（ＰＬＣ）を動作させる方法であって、
（ａ）ＰＬＣ機能の各々に対応するプロセッサを同時にイニシャライズするステップと、
（ｂ）プロセッサを用いて対応するプログラムを目下の掃引サイクルで実行することによってＰＬＣ機能を並列に動作させるステップと、
（ｃ）目下の掃引サイクルでプロセッサを用いることによって並列にデータを交換するステップと、
（ｄ）次の掃引サイクルにおいてプロセッサをステップ（ｂ）に切替え、プロセッサがそれぞれに要求されたすべてのプログラムを完了するまでステップ（ｂ）、（ｃ）及び（ｄ）を周期的に実行するステップと、
を含む方法。
【請求項１４】
前記メモリはその各々が１つのＰＬＣ機能と関連付けされている複数の第１及び第２のメモリを含むと共に、ステップ（ｂ）の間に生成された中間結果を該第１のメモリ内に配置するステップと、ステップ（ｃ）の間に他のプロセッサからのデータフロー変数を該第２のメモリ内に配置するステップと、をさらに含む請求項１３に記載の方法。
【請求項１５】
ステップ（ｄ）の間において事前定義の最大周期に到達したときに次の掃引サイクルですべてのプロセッサをステップ（ｂ）に同時に切替えている、請求項１３に記載の方法。
【請求項１６】
ステップ（ｄ）の間にすべてのプロセッサが対応するプログラムを目下の掃引サイクルで完了したときに次の掃引サイクルにおいてすべてのプロセッサをステップ（ｂ）に同時に切替えている、請求項１３に記載の方法。
【請求項１７】
その各々が複数のＰＬＣ機能が可能な複数のプログラマブルロジックコントローラ（ＰＬＣ）と、
前記ＰＬＣを接続する複数のシステムリンクと、
前記ＰＬＣを１つまたは複数のデバイスと接続する複数のＩＯモジュールと、を備えるプログラマブルロジックコントローラ（ＰＬＣ）システムであって、各ＰＬＣは、
ＰＬＣ機能の各々に割り当てられた１つまたは複数のプロセッサと、
前記プロセッサに結合されると共に複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、を備えており、
ＰＬＣ機能のうちの少なくとも２つが並列に動作している、プログラマブルロジックコントローラ（ＰＬＣ）システム。
【請求項１８】
前記システムリンクが低電圧差動信号（ＬＶＤＳ）である、請求項１７に記載のＰＬＣシステム。
【請求項１９】
各ＰＬＣは、相互の通信を可能にするようにＰＬＣ機能の各々に対応するプロセッサを接続している複数のチャンネルを備えている、請求項１７に記載のＰＬＣシステム。
【請求項２０】
前記プロセッサは複数の論理解法プロセッサを含む、請求項１７に記載のＰＬＣシステム。
【請求項２１】
前記メモリはその各々が１つのＰＬＣ機能と関連付けされている複数の第１及び第２のメモリを備えていると共に、該第１のメモリはプログラム及び中間結果を配置させかつ該第２のメモリはプロセッサ間の通信中のデータフロー変数を配置させている、請求項１７に記載のＰＬＣシステム。
【請求項２２】
前記第２のメモリはさらに、システムリンクを通じて送られるデータをそれぞれ格納するように専用としたシステム入力ドメインとシステム出力ドメインを備えている、請求項２１に記載のＰＬＣシステム。
【請求項２３】
前記メモリは、その各々が１つのＰＬＣ機能と関連付けされた複数のプログラムメモリと、第１のメモリ並びに入力データ及び出力データを格納するための該第１のメモリと同じ空間を有する第２のメモリを備えたｐｉｎｇ−ｐｏｎｇバッファと、を含む、請求項１７に記載のＰＬＣシステム。
【請求項２４】
前記ｐｉｎｇ−ｐｏｎｇバッファは第１のメモリ及び第２のメモリをプロセッサとそれぞれ接続している２つの調停器を備えており、かつ該調停器はプロセッサによる第１のメモリまたは第２のメモリへのアクセスを制御している、請求項２３に記載のＰＬＣシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的にはプログラマブルロジックコントローラ（ＰＬＣ）に関し、またより詳細には多重プロセッサ式のＰＬＣ及び多重プロセッサ式ＰＬＣを動作させるための方法に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラは、論理制御、シーケンス制御、運動制御、プロセス制御、分散システム制御、その他のために様々な工業分野で広く用いられている。プログラマブルロジックコントローラ（ＰＬＣ）は一般に、１つまたは複数のプロセッサと、メモリと、デバイスに結合させた複数の入力／出力（ＩＯ）モジュールと、を有する。このプロセッサはＰＬＣの心臓部であり、入力走査、論理解法（ｌｏｇｉｃ  ｓｏｌｖｉｎｇ）、出力走査などの多くのＰＬＣ機能を担っている。さらに、各ＰＬＣ機能と関連付けされた複数のプロセッサを存在させることがあることに留意されたい。したがって、適当なプロセッサを選択することが高いパフォーマンスをもつＰＬＣの実現に役立つ。
【０００３】
掃引サイクルの持続時間と論理解法の速度は、ＰＬＣの効率計測に用いられる２つの典型的なパラメータである。図１は、従来のＰＬＣ１００の掃引サイクルを模式図で表している。ＰＬＣ１００は典型的には、入力走査、論理解法及び出力走査などの複数のＰＬＣ機能を含む。入力走査、論理解法及び出力走査以外に、その用途に応じて別のＰＬＣ機能を含めることもある。ＰＬＣ機能はすべて、その各機能を全部処理した後に別の機能に進むような直列的シーケンスで実行されるのが典型的である。したがって後続の未処理のＰＬＣ機能は、直前の機能が終了するまで待機段階またはキュー状態のままである。したがって、総掃引サイクルの持続時間６は、ＰＬＣ機能の個々のすべてのサイクルタイムの持続時間１、２、３、４及び５とそれぞれのサイクルタイムの中間にあるすべての時間７との和である。個々のＰＬＣ機能を直列で処理するため、ＰＬＣの効率が低下することになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第ＲＥ３６２６３  Ｅ号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、実際の要件及び用途を満たすような高い効率を有する改良型のＰＬＣが必要とされている。
【課題を解決するための手段】
【０００６】
本発明の一態様では、複数のＰＬＣ機能が可能なプログラマブルロジックプロセッサ（ＰＬＣ）を提供する。本ＰＬＣは、ＰＬＣ機能の各々に割り当てられた１つまたは複数のプロセッサと、該プロセッサに結合されると共に複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、を備える。このＰＬＣ機能のうちの少なくとも２つは並列に動作する。
【０００７】
本発明の別の態様では、複数のＰＬＣ機能を有するＰＬＣを動作させる方法を提供する。このＰＬＣは、複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、ＰＬＣ機能の各々に割り当てられると共にメモリに結合された１つまたは複数のプロセッサと、を備える。本方法は、（ａ）ＰＬＣ機能の各々に対応するプロセッサを同時にイニシャライズするステップと、（ｂ）プロセッサを用いて対応するプログラムを目下の掃引サイクルで実行することによってＰＬＣ機能を並列に動作させるステップと、（ｃ）目下の掃引サイクルでプロセッサを用いることによって並列にデータを交換するステップと、（ｄ）次の掃引サイクルにおいてプロセッサをステップ（ｂ）に切替え、プロセッサがそれぞれに要求されたすべてのプログラムを完了するまでステップ（ｂ）、（ｃ）及び（ｄ）を周期的に実行するステップと、を含む。
【０００８】
本発明の別の態様では、ＰＬＣシステムを提供する。本ＰＬＣシステムは、その各々が複数のＰＬＣ機能が可能である複数のプログラマブルロジックコントローラ（ＰＬＣ）と、該ＰＬＣを接続する複数のシステムリンクと、ＰＬＣを１つまたは複数のデバイスと接続する複数のＩＯインタフェースと、を備える。各ＰＬＣは、ＰＬＣ機能の各々に割り当てられた１つまたは複数のプロセッサと、該プロセッサに結合されると共に複数のプログラムまたはデータの少なくとも１つを格納する少なくとも１つのメモリと、を備える。このＰＬＣ機能のうちの少なくとも２つは並列に動作する。
【０００９】
これらの利点及び特徴、並びにその他の利点及び特徴は、添付の図面に関連して提供した本発明の好ましい実施形態に関する以下の詳細な説明を読むことによってより理解が深まろう。
【図面の簡単な説明】
【００１０】
【図１】従来のプログラマブルロジックコントローラ（ＰＬＣ）の掃引サイクルを表したブロック概要図である。
【図２】本発明の一実施形態によるＰＬＣのブロック概要図である。
【図３】図２のＰＬＣのハードウェアアーキテクチャを表したブロック概要図である。
【図４】図３のデータフローメモリ（ＤＦＭ）の構造を表したブロック概要図である。
【図５Ａ】第１のラン−シンクフェーズ切替えフォーマットを利用した図２のＰＬＣのタイミング概要図である。
【図５Ｂ】第２のラン−シンクフェーズ切替えフォーマットを利用した図２のＰＬＣのタイミング概要図である。
【図５Ｃ】第３のラン−シンクフェーズ切替えフォーマットを利用した図２のＰＬＣのタイミング概要図である。
【図６】本発明の別の実施形態によるＰＬＣのデータフローを表したブロック概要図である。
【図７】本発明の別の実施形態によるＰＬＣのデータフローを表したブロック概要図である。
【図８】本発明の別の実施形態によるＰＬＣを動作させる方法を表した流れ図である。
【図９】本発明の別の実施形態によるＰＬＣのハードウェアアーキテクチャを表したブロック概要図である。
【図１０Ａ】フェーズＡにおけるＰＬＣの一種のデータフローを表したブロック概要図である。
【図１０Ｂ】フェーズＢにおけるＰＬＣの一種のデータフローを表したブロック概要図である。
【図１１】本発明の別の実施形態によるＰＬＣシステムのブロック概要図である。
【発明を実施するための形態】
【００１１】
本明細書の以下では本開示の実施形態について添付の図面を参照しながら説明することにする。以下の記載では、不必要な詳細によって本開示が不明瞭になるのを避けるためよく知られた機能や構成については詳細に記載しないものとする。
【００１２】
プログラマブルロジックコントローラ（ＰＬＣ）、プログラマブルオートメーションコントローラ（ＰＡＣ）及び分散制御システム（ＤＣＳ）は機能が重複することが知られている。これらの間の境界は益々曖昧になっている。したがって、本明細書で云うＰＬＣという語は、その元の意味に限定するものではなく、ＰＡＣやＤＣＳなど同様の性能や機能を有するすべての装置のことを意味している。
【００１３】
図面で使用する場合の「（複数のこともある）」という後置表現は通常、これにより修飾した用語に関して単数と複数の両方を含むこと、したがって当該用語の１つまたは複数を含むことを意図している。
【００１４】
本発明の一実施形態によるプログラマブルロジックコントローラ（ＰＬＣ）２００を図２に示している。ＰＬＣ２００は、データの収集、運動の制御、その他を行うためのセンサや駆動用アクチュエータなどのデバイス７０とでデータを交換する。ＰＬＣ２００は典型的には、１つまたは複数のプロセッサと、該プロセッサに結合された少なくとも１つのメモリ１０と、を有する。メモリ１０は典型的には、複数のプログラム、中間結果及び関連するデータを格納している。この実施形態によるプロセッサは、その各々が１つのＰＬＣ機能を実行しているＩＯ走査プロセッサ２０、論理解法プロセッサ３０、通信プロセッサ４０及び診断プロセッサ５０を含む。各プロセッサ２０、３０、４０、５０の内部には、並列に動作させることもある１つまたは複数のプロセッサを存在させることがある。プロセッサ２０、３０、４０、５０は、多くのプロセッサを包含する１つまたは複数のプロセッサアセンブリの一部とすることが可能である。
【００１５】
本発明は何らかの特定のプロセッサに限定されないことに留意すべきである。「プロセッサ」という用語はこれを本明細書で用いる場合、プログラムの実行が可能な任意のユニット、モジュール、マシン及び別の形態を示すように意図している。用語「プロセッサ」は、出力を生成するための定められた規則に従って入力を受け取りかつ該入力を処理することが可能な任意のユニット、モジュール、マシン及び別の形態を示すように意図していることは当業者であれば理解されよう。
【００１６】
ＰＬＣ２００はさらに、プロセッサを一体に連結させてこれらによる互いの通信を可能にしている複数のチャンネルを含む。幾つかの実施形態では、チャンネルを利用しないことがある。プロセッサ２０、３０、４０、５０は、並列に動作しＰＬＣの効率を大幅に高めるようにして対応するＰＬＣ機能を遂行する。
【００１７】
再度図２を見ると、ＩＯ走査プロセッサ２０は、入力モジュール及び出力モジュールを有する１つまたは複数の入力／出力（ＩＯ）モジュール６０を介して１つまたは複数のデバイス７０と接続させている。ＩＯ走査プロセッサ２０は、入力データの収集または出力データの送出のためにデバイス７０または関連するプロセッサを走査する。幾つかの実施形態ではそのＩＯ走査プロセッサ２０を入力走査プロセッサと出力走査プロセッサで置き換えている。論理解法プロセッサ３０は、その結果がＩＯ走査プロセッサ２０、診断プロセッサ５０または通信プロセッサ４０に送られる論理計算を実行する。通信プロセッサ４０は、低電圧差動信号（ＬＶＤＳ）などのシステムリンクを介してヒューマンマシンインタフェース（ＨＭＩ）８０と接続させている。通信プロセッサ４０は、他のプロセッサとでデータを交換すると共に、ＨＭＩ８０から要求を受け取る。ＨＭＩ８０はまた、ホストコンピュータ、ＭＭＩ（マンマシンインタフェース）及びＧＵＩ（グラフィカルユーザインタフェース）とも呼ばれる。通信プロセッサ４０はまた、システムリンクを介して別のＰＬＣを経由してＨＭＩ８０と通信する。診断プロセッサ５０は、ＰＬＣハードウェアのルーチンチェックを実行すると共に、メモリ１０内のフォールトテーブル（ｆａｕｌｔ  ｔａｂｌｅ）をメンテナンスする。
【００１８】
図３は、一実施形態による図２のＰＬＣ２００のハードウェアアーキテクチャを表している。メモリ１０は、それぞれがプログラムとローカルのデータメモリ（ＰＤＭ）１０１及びデータフローメモリ（ＤＦＭ）１０２により実現される複数のメモリ区画を有する。プロセッサ２０、３０、４０及び５０の各々は、１つの付属のＰＤＭ１０１と、直接付属の１つのＤＦＭ１０２（ローカルＤＦＭ）と、間接付属の３つのＤＦＭ（外部ＤＦＭ）と、を有する。ＰＤＭ１０１は、システムプログラムまたはユーザプログラムを格納するためのプログラムメモリと、中間結果を格納するためのローカルデータメモリと、に分割される。ＤＦＭ１０２は、データフロー変数の集積体である。データフロー変数は、データ値と、該データ値の有無を指示する１つの付属のタグと、を有する。
【００１９】
図３はさらに、４つのプロセッサ２０、３０、４０及び５０とＰＤＭ１０１とＤＦＭ１０２との間の関係を表している、ただし４つのプロセッサ２０、３０、４０及び５０とこれらの外部ＤＦＭ１０２との間の接続はその全部を図示していない。プロセッサ２０、３０、４０及び５０の各々は、その付属のＰＤＭ１０１及びそのローカルＤＦＭ１０２に対するフルアクセスを有する。その外部ＤＦＭ１０２内に格納されたデータフロー変数が望ましいとき、プロセッサ２０、３０、４０及び５０は事前定義のプロセッサ間通信プロトコルに準拠したチャンネル７５を介して４５度の矢印により示したような間接アプローチをとる。チャンネル７５は、幾つかの信号またはマルチポートメモリ、ｐｉｎｇ−ｐｏｎｇバッファまたは先入れ先出し（ＦＩＦＯ）などの共有メモリによって実現させることがある。この実施形態ではそのＦＩＦＯは、プロセッサをリンクさせるために採用される。
【００２０】
図２及び３に関連して図４を見ると、データフロー変数用の空間を提供するＤＦＭ１０２は、異なるタイプの格納済みデータ値に従って、入力ドメイン１０３、出力ドメイン１０４、中間ドメイン１０５、システム入力ドメイン１０６及びシステム出力ドメイン１０７などの幾つかのドメインに分離させている。入力ドメイン１０３は、入力モジュールを介したデバイス７０からの入力データを格納するためのものである。出力ドメイン１０４は、出力データを格納するためのものである。中間ドメイン１０５は、そのローカルＰＬＣのローカルまたは中間データを格納するためのものである。システム入力ドメイン１０６は、システムリンクを通したその他のＰＬＣやＨＭＩ８０からの入力データを格納するためのものである。システム出力ドメイン１０７は、システムリンクを通したその他のＰＬＣに対する出力データを格納するためのものである。少なくとも１つのＤＦＭはさらに、データを格納するための１つのドメイン（図示せず）を含む。例えば、ＩＯ走査プロセッサ２０のローカルＤＦＭ１０２は入力ドメイン１０３及び出力ドメイン１０４を有しており、また通信プロセッサ４０のローカルＤＦＭ１０２はシステム入力ドメイン１０６及びシステム出力ドメイン１０７を有している。幾つかの実施形態では、１つのドメインがプロセッサ２０、３０、４０及び５０内に分散させた小さいドメインからなる一群となっている。
【００２１】
この実施形態では、ＰＬＣ２００のすべてのプロセッサ２０、３０、４０及び５０は、掃引サイクルが従来のＰＬＣより短くなるように並列に動作している。掃引サイクルは典型的には、シンク（ｓｙｎｃｈ）フェーズとラン（ｒｕｎ）フェーズとからなる。シンクフェーズでは、すべてのプロセッサ２０、３０、４０及び５０がその送り先にデータを送ると共に他のプロセッサからデータを受け取っている。ＰＬＣ内のプログラムは、典型的には周期的であり、またデータフロー方向及びデータパケットサイズがシステム構成において用途要件に従って決定されるように事前決定されている。ランフェーズでは、すべてのプロセッサ２０、３０、４０及び５０が対応するプログラムを実行しそのＰＬＣ機能を遂行している。ランフェーズの間において、幾つかの中間結果が生成されかつ関連するＰＤＭ１０１内に配置される一方、ＤＦＭ１０２は更新される。この実施形態では、１つの掃引サイクルの持続時間は論理解法プロセッサ３０により実行されるのが典型的である最大ＰＬＣ機能によって決定される。
【００２２】
プロセッサ２０、３０、４０及び５０は一実施形態では、本明細書に記載した１つのシンク−ラン切替えフォーマットと３つのラン−シンク切替えフォーマットのいずれかとに準拠してシンクフェーズとランフェーズの間で切り替わっている。シンク−ラン切替えフォーマットとは、プロセッサ２０、３０、４０及び５０がすべてのデータを送りかつそれが要求したデータを受け取ったときにシンクフェーズからランフェーズに個々に切替わるものである。第１のラン−シンク切替えフォーマットではプロセッサ２０、３０、４０及び５０は、その対応するプログラムを完了したときにランフェーズからシンクフェーズに個々に切替わる。第２のラン−シンク切替えフォーマットではプロセッサ２０、３０、４０及び５０は、事前定義の最大実行周期（Ｔ＿ｍａｘ）に到達したときにランフェーズからシンクフェーズに同時に切替わる。第３のラン−シンク切替えフォーマットではプロセッサ２０、３０、４０及び５０は、すべてのプロセッサ２０、３０、４０及び５０がその対応するプログラムを完了したときにランフェーズからシンクフェーズに同時に切替わる。
【００２３】
図５Ａは、第１のラン−シンクフェーズ切替えフォーマットを採用している図３のＰＬＣ２００の掃引サイクルを表している。プロセッサ２０、３０、４０及び５０の処理速度やプロセッサからの／プロセッサへのデータパケットの数は異なることがあるため、シンクフェーズからランフェーズへの切替え点は完全には一致しないことがあり得る。すべてのプロセッサ２０、３０、４０及び５０はその個々の掃引サイクル内において並列に動作すると共に、その個々の切替えはそれぞれのＰＬＣ機能の完了時点で生じる。この例ではそのサイクルタイムを、最長のプロセッサ機能の個々のサイクルタイムの完了に関する時間と見なすことが可能である。第１のラン−シンクフェーズ切替えフォーマットは実現が簡単であるため、最も効率のよいＰＬＣが実現される。
【００２４】
図５Ｂは、第２のラン−シンクフェーズ切替えフォーマットを採用している図３のＰＬＣ２００の掃引サイクルを表している。この場合では、プロセッサ２０、３０、４０及び５０が処理を実行し、事前定義の時間期間Ｔ＿ｍａｘ後にあるいは目下のサイクル中のすべてのタスクの完了後に次のサイクルが始まる。事前定義の時間期間Ｔ＿ｍａｘは、ＰＬＣ処理のすべてが次のサイクルの前に完了するように導出したシミュレーションまたは実験により決定することが可能である。典型的には、個々のＰＬＣ機能のサイクルタイムと事前定義の時間期間Ｔ＿ｍａｘの間にはわずかな遅延が存在する。このわずかな遅延は典型的には、個々のＰＬＣ機能の最長処理時間に関する典型的な時間または平均的な時間の厳格な余裕域内に来るように計算される。大部分の用途では、論理解法機能を最高の優先度で配置させている。Ｔ＿ｍａｘは、その他の機能がエンドレスに実行されるのを回避するための最大掃引時間が最大でＴ＿ｍａｘであることを示す場合がある。例えば通信プロセッサ４０が膨大な量のデータを要求する場合、ランフェーズが非常に長くなる可能性がある。こうした状況下においていずれかの機能がＴ＿ｍａｘに違反したとき、警告またはフォールトを発生させることになる。
【００２５】
図５Ｃは、第３のラン−シンクフェーズ切替えフォーマットを採用している図３のＰＬＣ２００の掃引サイクルを表している。この実施形態ではプロセッサ２０、３０、４０及び５０は個々のＰＬＣ処理時間が終了したときにランフェーズからシンクフェーズに同時に切替わる。この例では、論理解法プロセッサ２０が最長のサイクルタイムである。この実施形態では、プロセッサ２０、３０、４０及び５０の中の１つの掃引サイクルの持続時間が最大実行周期となる。これに対して、従来のＰＬＣの１つの掃引サイクルの持続時間はすべてのプロセッサに関する和であるため、本発明により高い効率が達成される。さらに、ＰＬＣ機能の数を増大または低減することによって本実施形態に関する多くの代替形態が存在する。本明細書に示したように、大部分の用途において論理解法機能を最高の優先度で配置させている。第３のラン−シンクフェーズ切替えフォーマットは一般に、論理解法機能の処理時間が他のＰＬＣ機能ほど短くないと事前推定されるときに用いられる。
【００２６】
本システムの並列実行についての理解を向上させるために、ここでデータフローモデルに関する幾つかの例について記載することにする。図６を参照すると、２つのプロセッサ（すなわち、ＩＯ走査プロセッサと論理解法プロセッサ）を有するＰＬＣ３００を例として取り上げている。ＰＬＣ３００は、ＩＯ走査プロセッサ３０１、論理解法プロセッサ３０２及びメモリを有する。この実施形態におけるメモリは、その各々がＩＯ走査プロセッサ３０１及び論理解法プロセッサ３０２のそれぞれに関連付けされたＰＤＭ３０３及び３０４とＤＦＭ３０５及び３０６とを含む。ＩＯ走査プロセッサ３０１と論理解法プロセッサ３０２は複数のＦＩＦＯ３１０などの複数のチャンネルによって一体に接続されている。幾つかの実施形態では、ＦＩＦＯ３１０を別のタイプのチャンネルによって置き換えている。
【００２７】
記号「ｉｎ＿ｉｏ」と「ｏｕｔ＿ｌｏｇｉｃ」は、ＩＯ走査プロセッサ３０１と論理解法プロセッサ３０２によってそれぞれに生成される中間結果を示している。様々な矢印はデータフローの方向を意味している。本明細書には、Ｒ１、Ｒ２、Ｒ３、Ｒ４及びＲ５で表現した５つのルートを記載している。
【００２８】
Ｒ１は、ＩＯ走査プロセッサ３０１が入力モジュール３０７を介してデバイスからデータを受け取り、中間結果ｉｎ＿ｉｏを生成することを示している。Ｒ２は、中間結果ｉｎ＿ｉｏがデータフロー変数の形態でＤＦＭ３０６に送られてその中に配置されることを示している。データフロー変数は、タグとデータ値を有する。タグは一般に、整数の形態で出現する。タグがゼロを示した場合、論理解法プロセッサ３０２は対応するＤＦＭ３０６内のデータフロー変数にアクセスすることができない。ＤＦＭ３０６内に送られたデータが存在した後に、タグはゼロを超える整数に変更され、これにより論理解法プロセッサ３０２によるデータフロー変数へのアクセスが許可される。
【００２９】
Ｒ３は、論理解法プロセッサ３０２がＤＦＭ３０６内のデータフロー変数を用いてユーザプログラムを実行し、中間結果ｏｕｔ＿ｌｏｇｉｃを生成し次いでこれを対応するＰＤＭ３０４内に配置させることを示している。Ｒ４は、中間結果ｏｕｔ＿ｌｏｇｉｃがＩＯ走査プロセッサ３０１に送られ、次いでＦＩＦＯ３１０を介してＤＦＭ３０５内に配置されることを示している。Ｒ５は、ＩＯ走査プロセッサ３０１がＤＦＭ３０５内のデータフロー変数を出力モジュール３０８に送ることを示している。
【００３０】
この実施形態では、ＩＯ走査プロセッサ３０１を論理解法プロセッサ３０２と接続させるためにＦＩＦＯ３１０が用いられる。幾つかの実施形態では、プロセッサを外部ＤＦＭと接続させるためにＦＩＦＯ３１０などのチャンネルが用いられる。図６からのＰＬＣ３００におけるＲ２を例にとると、この実施形態ではＩＯ走査プロセッサ３０１は、ＦＩＦＯ３１０から中間結果ｉｎ＿ｉｏを収集し、次いでこの中間結果ｉｎ＿ｉｏをＤＦＭ３０５に配置させている。幾つかの実施形態ではそのＦＩＦＯ３１０は、ＩＯ走査プロセッサ３０１ではなく論理解法プロセッサ３０２をＤＦＭ３０５と接続させている。このため、中間結果ｉｎ＿ｉｏがＦＩＦＯ３１０を介してＤＦＭ３０５に直接配置されるため、ＩＯ走査プロセッサ３０１が飛び越されることになる。さらにＲ４をＲ２と同じ方式を適用して実現させることがあることに留意されたい。
【００３１】
この５つのルートは、２つのフェーズに整理される。２つのフェーズに関する上述の定義によれば、シンクフェーズにおいてルートＲ２及びＲ４が並列に実行され、またランフェーズにおいてルートＲ１、Ｒ３及びＲ５が並列に実行される。図６のデータフローモデルは、ＰＬＣ機能を効率よく支援しており、ＩＯ走査プロセッサ３０１及び論理解法プロセッサ３０２によってＩＯ走査と論理解法が並列に動作する。
【００３２】
図７を参照するとＰＬＣ４００は、図６からのＰＬＣ３００のもとの同様の配列を有するが、システムリンク４１１を介してＰＬＣ４００をＨＭＩ４０７と接続させている通信プロセッサ４０１をさらに含んでいる。図７は、通信プロセッサ４０１がシンクフェーズ中にプロセッサ３０１と３０２の間で如何にしてデータを交換しているかを表している。図７では簡略化するため、図６に示した幾つかのルート並びに通信プロセッサ４０１とＩＯ走査プロセッサ３０１の間の接続を無視している。ＰＬＣ４００内におけるメモリは、通信プロセス４０１と関連付けされたＰＤＭ４０３及びＤＦＭ４０４を含む。記号「ｉｎ＿ｃｏｍｍ」は通信プロセッサ４０１に対応する中間結果を示している。
【００３３】
ルートＲ２’、Ｒ４’及びＲ６’によってシンクフェーズ内のデータフローを表示している。Ｒ２’は、中間結果ｉｎ＿ｉｏがＤＦＭ３０６及び４０４に送られこの中にデータフロー変数の形態で配置されることを示している。Ｒ４’は、中間結果ｏｕｔ＿ｌｏｇｉｃがＩＯ走査プロセッサ３０１及び通信プロセッサ４０１に送られ、次いでＤＦＭ３０５及び４０４内に配置されることを示している。
【００３４】
Ｒ６’は、中間結果がＩＯ走査プロセッサ３０１に送られ、次いでＤＦＭ３０６内に配置されることを示している。ランフェーズでは、通信プロセッサ４０１がＨＭＩ４０７からＬＶＤＳなどのシステムリンク４１１を介して要求を受け取ると共にこの要求をデコードする。同時に、ＤＦＭ４０４内のＩＯ走査プロセス３０１及び／または論理解法プロセス３０２からのデータがパッキングされてシステムリンク４１１を介してＨＭＩ４０７に送り出される。その結果、通信プロセッサ４０１は、ＩＯ走査プロセッサ３０１及び論理解法プロセッサ３０２を介してデバイスの更新済みデータを周期的に送信している。さらに通信プロセッサ４０１は、デバイスのステータスを更新するためのＨＭＩ４０７からの要求を絶えず受け取っている。
【００３５】
上で述べたように幾つかの実施形態ではＦＩＦＯ３１０は、ＩＯ走査プロセッサ３０１ではなく論理解法プロセッサ３０２をＤＦＭ３０５と接続させており（図６及び７参照）、このため中間結果ｉｎ＿ｉｏがＤＦＭ３０５に直接送られる。ここで、Ｒ２’、Ｒ４’及びＲ６’が同じ方式で実現可能であることを理解すべきである。
【００３６】
ＤＦＭ４０４は、その空間が一般に制限されているシステム入力ドメイン及びシステム出力ドメインを有する。事前決定のしきい値にわたって膨大な量のデータをアップロードしなければならないときに、データブロックが発生することがある。したがって幾つかの実施形態では、通信プロセッサ内にスケジューラを設けている。事前決定しきい値にわたって大量のデータをアップロードしようとする場合、スケジューラは、アップロード要求を送出し連続サイクルでのデータのアップロードを可能とさせるようにトリガを受ける。
【００３７】
論理解法プロセッサにより実行させるプログラムは、大きくかつ計算集約的となるのが典型的であるユーザプログラムと規定される。論理解法プロセッサの実行によって掃引サイクルが決定される。論理解法プロセッサの処理持続時間を短縮するために、幾つかの実施形態では、ユーザプログラムを協働して実行する複数の論理解法プロセッサによってＰＬＣを構成させている。これらの実施形態ではそのユーザプログラムを、論理解法プロセッサ上で並列に実行される小片からなる群に分割している。この小片からなる群に対して異なる優先度を与えることがある。ユーザプログラムを優先度や適当な別の標準に従って小片に分割するために割り当て器を設けることがある。幾つかの実施形態ではその割り当て器は、ＰＬＣのメモリ内に配列させるか、ＰＬＣ内の単独の成分として構成される。ＰＬＣが４つ以上のＰＬＣ機能を有するような幾つかの実施形態におけるデータフローについてはここでは記載していないが、図６及び図７並びに対応する詳細な導入を参照すれば当業者にはこれが理解できよう。幾つかの実施形態では効率を高めるために、ＩＯ走査、論理解法及び通信のそれぞれを２つ以上のプロセッサ上で実行している。
【００３８】
図８は、別の実施形態によるＰＬＣを動作させるための方法を表している。この実施形態ではＰＬＣは、並列に動作する４つのＰＬＣ機能８１０、８２０、８３０、８４０を有する。各ＰＬＣ機能と関連付けされた１つまたは複数のプロセッサを存在させることが可能であることに留意されたい。様々な用途要件に応じて、ＰＬＣ機能の数は多くすることも少なくすることも可能である。簡略とするために、ＰＬＣ機能（送信器と受信器）の間の細部の接続については図示していない。
【００３９】
この実施形態では、ＰＬＣが開始された後、４つのＰＬＣ機能８１０、８２０、８３０、８４０の並列処理が始まっており、また一実施形態ではそのハードウェアは、図２からのＩＯ走査プロセッサ２０、論理解法プロセッサ３０、診断プロセッサ５０及び通信プロセッサ４０を代表している。本明細書で詳述した切替えフォーマットに従って後続の処理ステップが実行される。ＰＬＣ機能内のステップの数並びにＰＬＣ機能に関するサイクルタイムは可変とすることが可能であるが、ＰＬＣ機能の処理は並列に実行される。
【００４０】
再度図８及び図２に示した構成を参照すると先ず、ＰＬＣが開始されると共に、各ＰＬＣ機能に関するそれぞれのプロセッサが同時にイニシャライズされる。第２にプロセッサ２０、３０、４０及び５０は目下の掃引サイクルにおいてランフェーズに入り、その対応するＰＬＣ機能（ＩＯ走査、論理解法、通信及び診断）を実行する。
【００４１】
ランフェーズでは、ＩＯ走査プロセッサ２０がＩＯモジュール６０にアクセスするようにシステムプログラムを動作させ、論理解法プロセッサ３０がユーザプログラムを動作させ、通信プロセッサ４０が別のＰＬＣまたはＨＭＩ８０との通信のためにシステムリンクにアクセスするようにシステムプログラムを動作させ、かつ診断プロセッサ５０が診断ルーチンチェックを実現すると共に診断情報を出力するようにシステムプログラムを動作させる。本明細書で示したように、幾つかの切替えフォーマットが存在している。このＰＬＣにおいてあるシンク−ラン切替えフォーマットを適用する場合、プロセッサ２０、３０、４０及び５０はその個々のプログラムを完了させたときにそれぞれにシンクフェーズに切替わる。このＰＬＣにおいて第２のラン−シンクフェーズ切替えフォーマットを適用する場合、プロセッサ２０、３０、４０及び５０は事前定義のＴ＿ｍａｘに到達したときにシンクフェーズに同時に切替わる。このＰＬＣにおいて第３のラン−シンクフェーズ切替えフォーマットを適用する場合、プロセッサ２０、３０、４０及び５０はすべてのプロセッサがその個々のプログラムを完了したときにシンクフェーズに同時に切替わる。
【００４２】
処理は継続され、また一実施形態ではプロセッサがシンクフェーズに入る。シンクフェーズでは、すべてのプロセッサが他のプロセッサにデータを送ると共に、他のプロセッサからデータを受け取る。
【００４３】
ＰＬＣは、各プロセッサが自らが要求したものを受け取ったか否か並びに各プロセッサが他のプロセッサが要求したデータを送出したか否か（例えば、データ交換が完了したか？）を周期的にチェックしている。応答がイエスであればプロセッサ２０、３０、４０及び５０は、次の掃引サイクルでその個々のプログラムを実行するためにそれぞれランフェーズに戻り、イエスでなければプロセッサ２０、３０、４０及び５０の間でのデータの交換を維持することになる。
【００４４】
幾つかの実施形態ではＰＬＣは、複数のＰＬＣ機能が可能であると共に、共有メモリと該共有メモリに対して複数のチャンネルを介して結合された複数のプロセッサとを有する。異なる用途要件に応じて、ＰＬＣ機能の数は多いことや少ないことがある。１つのＰＬＣ機能を１つまたは複数のプロセッサ上で実行することがある。共有メモリは、システムプログラム及びユーザプログラムを含むプログラムを格納するための複数のプログラムメモリ（ＰＭ）と、ｐｉｎｇ−ｐｏｎｇバッファ（ＰＰＢ）と、を有する。各プロセッサは、１つのＰＭと関連付けさせている。このＰＰＢは、第１のメモリと、入力データ、出力データまたは中間データを格納するために該第１のメモリと同様の空間を有する第２のメモリと、を有する。
【００４５】
幾つかの実施形態では、第１のメモリは調停器及びｐｉｎｇバッファを含み、また第２のメモリは調停器及びｐｏｎｇバッファを含む。調停器は、２つ以上のプロセッサが同じメモリ内の１つの同じエリアに同時にアクセスしたときにアクセス結果をテストしかつ決定し、ＰＬＣ機能の並列動作を可能にしている。幾つかの実施形態ではその共有メモリは、第１及び第２のメモリが使用するための１つの共通の調停器を配列させている。
【００４６】
図９は、別の実施形態によるＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２を有するＰＬＣ９００を表している。各プロセッサ９０１または９０２の内部には、並列に動作し得る１つまたは複数のプロセッサを存在させることがある。プロセッサ９０１及び９０２は、多くのプロセッサを包含した１つまたは複数のプロセッサアセンブリの一部分とすることが可能である。
【００４７】
ＰＬＣ９００は、ＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２のそれぞれに関連付けされた２つのＰＭ９０３及び９０４と、第１のメモリ９０５と、第２のメモリ９０６と、を含んだ共有メモリを有する。この実施形態では第１のメモリ９０５は、入力データ、出力データ及び中間結果を格納するためのｐｉｎｇバッファ９０７と、ｐｉｎｇバッファ９０７へのアクセスを制御するための調停器９０９と、を有する。第２のメモリ９０６はｐｏｎｇバッファ９０８及び調停器９１０を有する。ｐｏｎｇバッファ９０８は、入力データ、出力データ及び中間データを格納するためのｐｉｎｇバッファ９０７と同様の空間を有する。調停器９０９及び９１０は、アクセスしようとするデータが異なるアドレスを用いて配置されているがこれらが配置された領域が同じであるときにおけるデータアクセスを許可する。
【００４８】
図１０Ａ及び１０Ｂは、ＰＬＣ９００内でのフェーズＡ及びフェーズＢのそれぞれにおけるある種類のデータフローを表している。ＰＬＣ９００は、フェーズＡ及びフェーズＢにおいてプログラムを周期的に実行する。１つの掃引サイクル中において、ＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２はその対応するプログラムを並列に実行する（図１０ＡのフェーズＡ参照）。フェーズＡには４つのデータフロールート（Ｌ１、Ｌ２、Ｌ３及びＬ４）を図示している。ＩＯ走査プロセッサ９０１はルートＬ１及びＬ４を実行する一方、論理解法プロセッサ９０２はルートＬ２及びＬ３を実行する。ルートＬ１を通じてｐｉｎｇバッファ９０７の入力領域内に格納される入力データは事前決定の分類に従って異なるアドレスに割り当てられる。ＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２がその目下の対応するプログラムを完了したときまたは事前決定の最大周期に到達したときに、これらは次の掃引サイクルに切替わる（図１０ＢのフェーズＢ参照）。ＩＯ走査プロセッサ９０１はルートＬ１’及びＬ４’を実行する一方、論理解法プロセッサ９０２はルートＬ２’及びＬ３’を実行する。ＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２はその個々のプログラムを並列で実行することは明らかである。幾つかの特殊な用途ではそのＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２は１つの同じ領域にアクセスすることがある。ここでＰＬＣ９００内の調停器９０９及び９１０は、アクセス先が同じアドレスにあるか否かをテストするようにトリガを受ける。応答がイエスであれば、調停器は先ず１つのアクセスをランダムに選択すると共にそれ以外のアクセスを待機させる。イエスでない場合は、ＩＯ走査プロセッサ９０１及び論理解法プロセッサ９０２は並列にアクセスすることがある（すなわち、ＩＯ走査と論理解法という２つのＰＬＣ機能が並列に動作を受ける）。
【００４９】
データの整合性を向上させるために、ＰＬＣ９００内に保護システム（図示せず）を設けている。ソフトウェアの観点からすると、保護機構は第１または第２のメモリ９０５及び９０６内のｍｕｔｅｘによって実現される。このｍｕｔｅｘは、テスト＆設定動作を提供し、事前定義の標準に従って同じ時間に受けるアクセスに対する優先度を設定する。２つ以上のプロセッサがｐｉｎｇバッファ９０７またはｐｏｎｇバッファ９０８内の同じエリアの同じアドレスに同時にアクセスしたとき、調停器９０９及び９１０は、最も高い優先度をもったアクセスを許可すると共にこれ以外を待機させる。
【００５０】
図１１は、本発明の別の実施形態による分散式ＰＬＣシステム１１００を表している。図１１において「Ｐ．」はプロセッサを短縮したものである。分散式ＰＬＣシステム１１００は、ＨＭＩ１１０４を様々なデバイス１１０５、１１０６及び１１０７に結合させ、ユーザがデバイス１１０５、１１０６及び１１０７の動き、処理または別の操作をＨＭＩ１１０４を介して自動で制御できるようにするためのものである。この実施形態では分散式ＰＬＣシステム１１００は、３つのプログラマブルロジックコントローラ（ＰＬＣ）１１０１、１１０２及び１１０３と、ＰＬＣ１１０１、１１０２及び１１０３を互いにあるいはＨＭＩ１１０４と接続している複数のシステムリンク１１０８と、ＰＬＣ１１０１、１１０２及び１１０３を対応するデバイス１１０５、１１０６及び１１０７と接続している複数のＩＯモジュールと、を有する。ＰＬＣ１１０１、１１０２及び１１０３は、異なるデバイスを制御するように割り当てられており、また代替的な一実施形態では、これらを１つのデバイス内の異なる部分を制御するように割り当てている。
【００５１】
各ＰＬＣ１１０１、１１０２または１１０３は、複数のＰＬＣ機能が可能であると共に、システムプログラム及びユーザプログラムを格納するためのメモリと、複数のプロセッサと、を有する。各ＰＬＣ機能は１つまたは複数のプロセッサに割り当てられている。幾つかの実施形態ではそのＰＬＣ１１０１、１１０２及び１１０３を、その用途に従って上述の実施形態のＰＬＣのいずれかで置き換えている。この実施形態では各ＰＬＣは、ＩＯ走査プロセッサ、論理解法プロセッサ、通信プロセッサ及び診断プロセッサを含む。各プロセッサの内部には、並列に動作し得る１つまたは複数のプロセッサを存在させることがある。これらのプロセッサは、多くのプロセッサを包含した１つまたは複数のプロセッサアセンブリの一部とすることが可能である。
【００５２】
ＩＯ走査プロセッサは、結合させたデバイス１１０５、１１０６または１１０７を走査するように対応するシステムプログラムを実行する。論理解法プロセッサは、論理計算を処理するためにユーザプログラムを実行する。通信プロセッサは、対応するシステムプログラムを実行すると共に、システムリンク１１０８と協働して２つのＰＬＣの間または１つのＰＬＣとＨＭＩ１１０４の間に通信を確立している。動作時において診断プロセッサは、対応するシステムプログラムを実行すると共に診断ルーチンチェックを実行して診断結果を生成しこれを他のプロセッサに送っている。
【００５３】
各ＰＬＣ１１０１、１１０２または１１０３内においてＰＬＣ機能を並列に動作させている。各ＰＬＣの構成の詳細についてはＰＬＣの上述の実施形態で触れている。図９、１０Ａ及び１０Ｂに示したＰＬＣはさらに、ＰＬＣ機能を並列に動作させるように用いられる。
【００５４】
各ＰＬＣ内の通信プロセッサは、任意の２つのＰＬＣの間または１つのＰＬＣとＨＭＩ１１０４の間に通信を確立させる役割をする。あるＰＬＣの動作は、他のＰＬＣが要求したデータに依存する場合がある。通信プロセッサは、更新済みデータまたは他のプロセッサからの要求をシステムリンク１１０８を用いて連続的に送りかつ受け取っている。幾つかの実施形態ではそのメモリは、システムリンク１１０８を通じて受け取った／送られるデータを配置させるための専用となるようにシステム入力ドメイン及びシステム出力ドメインを有する。この実施形態では、システムリンク１１０８を低電圧差動信号（ＬＶＤＳ）によって実現している。ＰＬＣシステムが大量のデータを転送する場合、工業用のイーサネットプロトコルをここで利用することがある。
【００５５】
プログラミングについては、すべてのプログラムが、１つのコンパイラ（図示せず）を用いてＨＭＩやその他のコンピュータ１１０４を介して分散式ＰＬＣシステム６００内にプログラムされている。このコンパイラは、ハードウェア及びソフトウェア情報を含む各ＰＬＣ１１０１、１１０２または１１０３のすべての情報を記録する。このコンパイラは、各ＰＬＣ１１０１、１１０２または１１０３内のプロセッサを指定すると共に、システムリンクを自動的に生成する。先ず各ＰＬＣをプログラミングし次いでこれらを互いに接続している従来のプログラミング法と比較して、本発明の構成によればプログラミングがより容易となる。さらにこれによればユーザは、その用途に従って追加のＰＬＣを挿入することによってＰＬＣシステムを容易にスケールアップすることが可能である。
【００５６】
ＰＬＣ内の上述の複数のプロセッサあるいはＰＬＣシステム内のＰＬＣのうちの１つを複数のチップ上に配置させることがある。例えば、複数のプロセッサを有するＰＬＣが２つのチップを含むことがあり、また１つのチップが１つのプロセッサまたは複数のプロセッサを配置させることがある。さらに、整合性パフォーマンスがその用途を満たしているれば、プロセッサのすべてを１つのチップ上に配置させている。
【００５７】
本開示を典型的な実施形態について図示し説明してきたが、本開示の精神をいかなる意味でも逸脱することなく任意の方法で様々な修正形態や置換形態を実施できるため提示した詳細に限定する意図ではない。このため、当業者にとってはルーチンを超えない実験を用いて本明細書に開示した開示内容に対する追加の修正形態や等価形態を実施できると共に、こうした修正形態や等価形態のすべては添付の特許請求の範囲に規定したような本開示の精神及び趣旨域内にあるものと考えられる。
【符号の説明】
【００５８】
１０  メモリ
２０  ＩＯ走査プロセッサ
３０  論理解法プロセッサ
４０  通信プロセッサ
５０  診断プロセッサ
６０  入力出力（ＩＯ）モジュール
７０  デバイス
７５  チャンネル
８０  ヒューマンマシンインタフェース（ＨＭＩ）
１００  従来のプログラマブルロジックコントローラ（ＰＬＣ）
１０１  プログラムとローカルのデータメモリ（ＰＤＭ）
１０２  データフローメモリ（ＤＦＭ）
１０３  入力ドメイン
１０４  出力ドメイン
１０５  中間ドメイン
１０６  システム入力ドメイン
１０７  システム出力ドメイン
２００  本発明によるプログラマブルロジックコントローラ（ＰＬＣ）
３００  ＰＬＣ
３０１  ＩＯ走査プロセッサ
３０２  論理解法プロセッサ
３０３  ＰＤＭ
３０４  ＰＤＭ
３０５  ＤＦＭ
３０６  ＤＦＭ
３０７  入力モジュール
３０８  出力モジュール
３１０  ＦＩＦＯ
４００  ＰＬＣ
４０１  通信プロセッサ
４０３  ＰＤＭ
４０４  ＤＦＭ
４０７  ＨＭＩ
４０７  ＨＭＩ
４１１  システムリンク
８１０  ＰＬＣ機能
８２０  ＰＬＣ機能
８３０  ＰＬＣ機能
８４０  ＰＬＣ機能
９００  ＰＬＣ
９０１  ＩＯ走査プロセッサ
９０２  論理解法プロセッサ
９０３  ＰＭ
９０４  ＰＭ
９０５  第１のメモリ
９０６  第２のメモリ
９０７  ｐｉｎｇバッファ
９０８  ｐｏｎｇバッファ
９０９  調停器
９１０  調停器
１１００  分散式ＰＬＣシステム
１１０１  プログラマブルロジックコントローラ（ＰＬＣ）
１１０２  プログラマブルロジックコントローラ（ＰＬＣ）
１１０３  プログラマブルロジックコントローラ（ＰＬＣ）
１１０４  ＨＭＩ
１１０５  デバイス
１１０６  デバイス
１１０７  デバイス
１１０８  システムリンク
【図１】
2013506911.tif 000003
【図２】
2013506911.tif 000004
【図３】
2013506911.tif 000005
【図４】
2013506911.tif 000006
【図５Ａ】
2013506911.tif 000007
【図５Ｂ】
2013506911.tif 000008
【図５Ｃ】
2013506911.tif 000009
【図６】
2013506911.tif 000010
【図７】
2013506911.tif 000011
【図８】
2013506911.tif 000012
【図９】
2013506911.tif 000013
【図１０Ａ】
2013506911.tif 000014
【図１０Ｂ】
2013506911.tif 000015
【図１１】
2013506911.tif 000016
【国際調査報告】
2013506911.tif 000017
2013506911.tif 000018
2013506911.tif 000019