(57)【特許請求の範囲】
【請求項１】
ＳＦＣを用いて作成されたシーケンスプログラムを記憶したシーケンスプログラムメモリと、被制御装置の制御に必要なデータを記憶するデータメモリと、このデータメモリの記憶内容を参照しながらシーケンスプログラムメモリに記憶されたシーケンスプログラムを実行するシーケンス演算プロセッサとを備えたプログラマブルコントローラにおいて、
前記シーケンスプログラムメモリは、ＳＦＣプログラムにおけるステップ毎の実行状態を管理する情報、およびステップ間の遷移を制御する情報を、複数のタスクあるいはコントローラから共通にアクセスできる領域に持っており、
ステップの実行状態を管理する情報およびステップ間の遷移を制御する情報の存在場所を示す論理セグメントを命令語中に指定しており、
ステップの実行状態を管理する情報およびステップ間の遷移を制御する情報が、通信手段で結合された他のコントローラに存在し、前記実行状態を管理する情報のアクセスのために他のコントローラとの間で通信を実行するように構成されていることを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラにおいて、
複数台のコントローラによりプログラムの並列実行を可能とするために、分岐制御情報に、各コントローラが実行するプログラム部分を指定するプログラム指定情報を含んでいることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鉄鋼設備や、製紙プラント、上下水道などの公共システム、さらには自動車産業など、産業用システムの制御に広く使用されているプログラマブルコントローラに関する。
【０００２】
【従来の技術】
従来のプログラマブルコントローラ（以下、「ＰＬＣ」と称する）のプログラム実行の高速化のために、プログラムを複数のタスクやコントローラに分担して実行させることが考えられる。
しかし、従来、プログラムの分割や同期を柔軟に実行することは困難であり、殆ど実用にはなっていない。
特にシステム内に複数のコントローラが存在し、通信手段やバスで結合されている場合には、制御の冗長性を得る目的からも複数のコントローラでプログラムを分担して実行したいという要求がある。
しかし、前述したようにプログラムの分割や変更が困難であることから未だ実現できていない。
【０００３】
【発明が解決しようとする課題】
本発明は、上記の事情を考慮してなされたもので、ＳＦＣ（シーケンシャル・ファンクション・チャート）を用いて作成されたシーケンスプログラムを実行する場合に、複数のタスクやコントローラの間で並列実行や分担実行を容易に実現できるようにすることを目的とする。
【０００４】
【課題を解決するための手段】
上記目的達成のため、本発明は、
ＳＦＣを用いて作成されたシーケンスプログラムを記憶したシーケンスプログラムメモリと、被制御装置の制御に必要なデータを記憶するデータメモリと、このデータメモリの記憶内容を参照しながらシーケンスプログラムメモリに記憶されたシーケンスプログラムを実行するシーケンス演算プロセッサとを備えたプログラマブルコントローラにおいて、
前記シーケンスプログラムメモリは、ＳＦＣプログラムにおけるステップ毎の実行状態を管理する情報、およびステップ間の遷移を制御する情報を、複数のタスクあるいはコントローラから共通にアクセスできる領域に持っており、
ステップの実行状態を管理する情報およびステップ間の遷移を制御する情報の存在場所を示す論理セグメントを命令語中に指定しており、
ステップの実行状態を管理する情報およびステップ間の遷移を制御する情報が、通信手段で結合された他のコントローラに存在し、前記実行状態を管理する情報のアクセスのために他のコントローラとの間で通信を実行するように構成されていることを特徴とするものである。
【０００５】
【０００６】
【０００７】
【０００８】
【０００９】
【００１０】
【００１１】
【００１２】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００１３】
＜ＳＦＣプログラムの説明＞
まず、本発明で扱うＳＦＣプログラムの適用対象であるコントローラシステムについて図１３を参照して説明する。このシステムは、コントローラ５１，５２および伝送装置５３がバス５４を介して接続されているコントローラ装置５０と、コントローラ６１および伝送装置６２がバス６３を介して接続されているコントローラ装置６０と、コントローラ７１および伝送装置７２がバス７３を介して接続されているコントローラ装置７０とが、各伝送装置５３，６２，７２および共通の通信手段４５を介して接続されている。通信手段４５は通信回線やバスであり得る。
このシステムにおいては、各コントローラ装置５０，６０，７０間で互いに制御データを参照し合うことができるように構成されている。本発明は、このようなシステムにおいて用いられるＳＦＣプログラムに関連しており、次に図１４を参照してＳＦＣプログラムの概略説明を行う。
【００１４】
図１４のプログラムはステップＳ１から動作を開始し、ステップＳ２，Ｓ３およびＳ４と次々と歩進し実行した後、ここからｎ本に分岐したプログラムＰ１，Ｐ２，…，Ｐｎを並列に実行する。この後、１本のプログラム経路に合流し、ステップＳ５，Ｓ６を実行し、ステップＳ１に戻る。ステップＳ４の後の二重線はそれ以下の分岐プログラムＰ１〜Ｐｎを並列に実行する、ということを表現している。
これに対応して、ステップＳ５の前の二重線は並列実行の終了を意味している。各分岐プログラムＰ１〜Ｐｎは図示の例ではそれぞれ３つのステップＳＰ１１〜ＳＰ１３，ＳＰ２１〜ＳＰ２３，…，ＳＰｎ１〜ＳＰｎ３からなっている。
【００１５】
各ステップ間の動作の遷移に関しては、ステップ間を結ぶ線上の横棒が遷移条件を示しており、それぞれ先行ステップの表示に対応するｘ番号をもってＴｘまたはＴＰｘという条件が付けられている。
図示の例では、ｘ＝１〜６またはｘ＝１１〜１３，…，ｎ１〜ｎ３であり、ステップ１，２間に遷移条件Ｔ１が、ステップ２，３間に遷移条件Ｔ２が、ステップ３，４間に遷移条件Ｔ３が、ステップ４の後に遷移条件Ｔ４が、ステップ５，６間に遷移条件Ｔ５が、ステップ６，１間に遷移条件Ｔ６がそれぞれ設定され、さらに、並列分岐の各ステップの後にもそれぞれ対応する遷移条件が設定されている。
あるステップの直前のステップの動作中（以下、「ＯＮ」と称する）であって、遷移条件ＴｘまたはＴＰｘが成立したときに直前のステップの動作が終了し、次のステップが動作を開始する。各ステップには、それぞれ対応するプログラムが付随しているが、ここでは省略している。また、この回路全体にプログラムの識別番号が付与され、同様のプログラムの集合により、全体の制御プログラムが構成されるものとする。
【００１６】
＜各請求項に共通のハードウェア構成＞
本発明の共通のハードウェア構成を、図１に示す。図１において、ＰＬＣ（プログラマブルコントローラ）１５を全体的な制御を司る中枢部はＣＰＵ１であり、このＣＰＵ１に対してプログラムメモリ２、ワークメモリ３、シーケンス演算プロセッサ４、シーケンスプログラムメモリ５、およびデータメモリ６がマイコンバス７を介して接続されている。マイコンバス７には、通信インターフェイス８、Ｉ／Ｏ（入出力装置）９およびバスインターフェイス１０も接続されている。
【００１７】
プログラムメモリ２は、ＣＰＵ１が実行するプログラムを格納しているメモリであり、ＯＳや制御プログラムが格納されている。ワークメモリ３は、ＣＰＵ１が全体制御を実行するときに作業領域として使用するメモリである。シーケンス演算プロセッサ４は、シーケンスプログラムを実行するプロセッサであり、プログラムのモニタのためのモニタデータのトレースも実行する。
シーケンスプログラムメモリ５は、ユーザが作成したシーケンスプログラムを格納するメモリである。データメモリ６は、ユーザが使用する変数などのデータを格納するメモリである。マイコンバス７は、ＰＬＣ内の要素をＣＰＵ１やシーケンス演算プロセッサ４と接続するためのバスであり、アドレスバスや、データバス、制御バスの総体である。通信インターフェイス８は、ＰＬＣとモニタ装置４０などを接続するためのインターフェイス回路である。Ｉ／Ｏ９は、ＰＬＣ１５と外部の制御対象を接続するための入出力装置である。
バスインターフェイス１０は、マイコンバス７とコントローラ間バス２０とを接続するインターフェイスであり、コントローラ間バス２０上の他のコントローラ装置３０との間でデータ伝送を行う場合に使用される。
モニタ装置４０は、ＰＬＣ１５のシーケンスプログラム実行状態を監視したり、シーケンスプログラムの作成・修正をしたりするのに使用される。モニタ装置４０は、ＣＲＴ等の表示装置のほかにキーボード等の入力装置を持ち、ＰＬＣ１５のシーケンスプログラムの実行状態を監視したり、シーケンスプログラムの作成・修正をしたりするために使用される。
【００１８】
コントローラ間バス２０は、コントローラ装置３０および伝送装置２１と本発明のＰＬＣ１５とを接続するためのバスである。本発明のＰＬＣ１５は、コントローラ間バス２０を使用することにより、コントローラ装置３０および伝送装置２１との間でデータ転送が可能である。
伝送装置２１は、離れた場所にあるコントローラ３３と本発明のＰＬＣ１５との間でデータ転送を行う場合に使用する装置であり、バスインターフェイス１０を介して渡したデータを長距離伝送に適した信号に変換して送信するとともに、受信時には逆の変換動作を行ってＰＬＣ１５に渡す。
【００１９】
コントローラ装置３０は、本発明に係るＰＬＣ１５と同種類または他の種類のコントローラであり、本発明のＰＬＣ１５とはコントローラ間バス２０や伝送装置２１を介して接続可能である。コントローラ装置３０は、一例としてはｎ台のコントローラ３０ａ，…，３０ｎからなり、バス２０に接続された形で共有メモリ２２および伝送装置２１を備えている。共有メモリ２２は、コントローラ間バス２０に接続されている機器のいずれからもアクセス可能なメモリである。
【００２０】
ＰＬＣ１５は、コントローラ間バス２０に接続された伝送装置２１を介してさらに他の伝送線路３１上のコントローラ装置３３に対してもアクセスすることができる。コントローラ装置３３は、それぞれ伝送装置３２ａ，…，３２ｎを介して伝送線路３１に接続されるｎ台のコントローラ３３ａ，…，３３ｎを備えている。
【００２１】
＜実施形態１＞
本発明の実施形態１について説明する。この実施形態１のＰＬＣ１５で使用するＳＦＣプログラムの実行のためには、図１４を参照して説明したように、ステップの実行管理情報および遷移情報を必要とする。
通常、これらの情報は、あるタスクの中だけでアクセス可能なローカルな情報である。この場合、他のタスクからは前記情報のアクセスは不可能なので、他のタスクからＳＦＣプログラムの実行状況を知ったり制御したりすることは不可能である。
そこで、本発明のＰＬＣ１５においては、各ステップの実行管理情報および遷移情報を各ステップまたは遷移条件ごとにローカルなメモリ領域にもグローバルなメモリ領域にも置けるようにすることにより、複数のタスクあるいはコントローラによってプログラムを分担実行させた後、それぞれのタスクまたはコントローラ内にあるプログラムの実行完了情報を別のタスクまたはコントローラ内のＳＦＣプログラムで監視し、実行完了の同期をとったり、並列実行の開始を制御したりすることができるようにする。
【００２２】
＜実施形態２＞
本発明の実施形態２について説明する。この実施形態２のＰＬＣ１５で使用するＳＦＣプログラムを構成する命令の一例として、ステップを処理する命令の形式を図２に示す。図２において、ステップ８０を処理する命令は、ステップの実行状態を管理する情報をオペランドとして持っている。オペランドを指定するために前記命令にはオペランドの存在場所を示す論理セグメントコード８１と、その論理セグメントの中でのアドレス情報８２を持たせている。オペランドの論理セグメントコード８１は図３に示すようにして指定する。
【００２３】
図３において、論理セグメントコード８１は、コード“０”で「ローカル（コントローラタスク内）」を表し、コード“１”で「グローバル（コントローラ内の共有エリア）」を表し、以下、コード“２”で「Ｉ／Ｏ」を、コード“３”で「他のコントローラ内（バス上）」を、コード“４”で「他のコントローラ（伝送線路上）」を、コード“５”で「その他」を、それぞれ表している。
ここで「ローカル」とは、ＳＦＣプログラムが属するタスク専用のメモリ内にオペランドが存在することを示す。「グローバル」とは、コントローラ内において複数のタスクから共通にアクセス可能であるエリアを指す。
図３の例では、コード“１”〜“４”はグローバル領域とみなされる。コード“２”の「Ｉ／Ｏ」は、オペランドがＩ／Ｏデータであることを示す。コード“３”の「他のコントローラ内（バス上）」は、コントローラ間バス２０で接続された他のコントローラ装置３０内にオペランドが存在することを示す。コード“４”の「他のコントローラ（伝送線路上）」は、伝送線路３１で結合された他のコントローラ装置３３内にオペランドがあることを示す。オペランド情報は、図４に示すように、該当ステップのＯＮ／ＯＦＦ情報８４のほかに、ステップの実行回数情報８５や実行時間情報８６などを持っているものとする。
【００２４】
このように、本発明のＰＬＣ１５では、ＳＦＣプログラムに使用する命令を構成する情報として、オペランドが存在する場所をコード化して命令語内に置くようにしたので、例えば遷移条件のオペランドを他のコントローラ装置３０，３３内の変数にすることも容易である。
したがって、他のコントローラ装置３０，３３内にあるプログラムの遷移を制御したり、他のコントローラ装置３０，３３で実行されているプログラムと自コントローラ（ＰＬＣ）１５で実行しているプログラムとの同期をとったりすることなどを容易に実現することができる。
【００２５】
＜実施形態３＞
本発明の実施形態３について説明する。この実施形態３のＰＬＣ１５では、ＳＦＣプログラムで使用するオペランドの存在場所を指定するために、図３に示す論理セグメントコード８１を使用する。ＰＬＣ１５のシーケンス演算プロセッサ４（図１）はＳＦＣプログラムを実行する際にオペランドの論理セグメントコード８１の内容を調べ、オペランドが伝送線路３１上の他のコントローラ装置３３に存在することが判明した場合には、ＣＰＵ１にそれを通知し、伝送線路３１上にある他のコントローラ装置３３内の変数をアクセスするための通信プログラムを起動させることが可能である。
このように、オペランドが論理セグメントコード８１に従って必要なデータアクセスプログラムを起動することが可能なので、オペランドデータの存在場所のいかんにかかわらず、容易にプログラムを作成することが可能である。
【００２６】
＜実施形態４＞
本発明の実施形態４について説明する。この実施形態４のＰＬＣ１５では、以下のようにしてプログラムの分配を実行する。ここで、図１５に示すようなプログラムを図１４に示す３台のコントローラ５１，５２，６１で分配して実行するものとする。ここで、並列分岐の数ｎを、仮にｎ＝１６とする。
図１５のプログラムは、ステップＳ４から１６本のプログラムＰ１〜Ｐ１６に分岐し、その後、ステップＳ５に合流するプログラムである。この分岐プログラムのうち、並列分岐プログラムの一つの枝をＰｘで表す。プログラムＰ１からプログラムＰ６までをコントローラ５１が実行し、プログラムＰ７からプログラムＰ１１までをコントローラ５２が実行し、さらに、プログラムＰ１２からプログラムＰ１６までをコントローラ６１が実行するものとする。
【００２７】
まず、プログラムの分配を指示するコントローラ、例えばコントローラ５１から図５に示す分岐制御情報８７を他のコントローラ５２，６１に送る。分岐制御情報８７は、タスク指定情報８８、プログラム指定情報８９、および分岐指定情報９０からなっている。ここでは、分岐指定情報９０は１６ビットで表現され、そのいずれに“１”がセットされるかに従って分岐指定が行われ、対応する分岐プログラムを実行するものとする。
例えば、ビット０が“１”にセットされているときは分岐プログラムＰ１を実行し、ビット１５が“１”にセットされているときは、分岐プログラムＰ１６を実行するものとする。この分岐制御情報８７は、各コントローラに備えられる分岐制御テーブル９１に格納される。この分岐制御テーブル９１の構成例を、図６に示す。これは、各コントローラの各タスクのデータ領域にプログラム順に格納されるものとする。
【００２８】
本発明のＰＬＣ１５では、プログラムの分配を可能にするために、シーケンス演算プロセッサ４（図１）内に、図７に示すような分岐制御レジスタ９２を持たせている。このレジスタ９２は、ＳＦＣプログラムの分岐および収束を実行するときの演算に使用される。  例えば、図１４に示す分岐プログラムＰ１〜Ｐｎが、コントローラＡ内ではプログラムのｍ番目に当っていたとすると、ＰＬＣ１５は図６の分岐制御テーブル９１からプログラムｍに対応する分岐制御情報８７を読み出して、それを分岐制御レジスタ９２に格納する。
この分岐制御情報８７は、分岐プログラムＰ１〜Ｐ６を実行させるために、ビット０〜５がそれぞれ“１”にセットされている。この分岐制御レジスタ９２内の情報は、図１４のプログラムを実行する場合に、分岐プログラムへの遷移命令を実行する際に使用され、分岐制御レジスタ９２内のビットが“１”にセットされている分岐プログラムについてだけ遷移が許可されるように構成されている。これは、選択実行時の分岐でも、並列実行時の分岐でも同様である。
【００２９】
次に、選択実行時の合流の際には、分岐制御レジスタ９２内のビットが“１”にセットされている分岐プログラムについてだけ合流の条件演算が実行される。並列実行時の合流の際には、分岐制御レジスタ９２の内容いかんにかかわらず、全ての分岐プログラムについて完了状態が調べられる。
各コントローラでは、分岐プログラムの最後のステップが実行されたときに、その情報を他の全てのコントローラに連絡するようにする。その情報を受信した他のコントローラは、その完了情報を自コントローラ内の対応するステップの制御情報にコピーする。
【００３０】
以上のように、分岐プログラムのステップ情報を他のコントローラに伝えることにより、各コントローラ内の分岐プログラムは、仮想的に図８に示したような状態になる。なお、この分岐プログラムは、図１４の分岐プログラムにおいて分岐数ｎを、ｎ＝１６とした場合に対応している。この分岐プログラムＰ１〜Ｐ１６のうち、分岐プログラムＰ１〜Ｐ６に対応するステップＳＰ１１〜ＳＰ６３の状態は、他のコントローラから送信されたデータとなる。
これにより、自コントローラが実行しなかった分岐プログラムについても、その最終ステップの実行状態が収束時の演算に使用できるようになる。これにより、各コントローラにおける並列実行時の完了条件の演算は、コントローラが１台のときと同様に実行することが可能になる。以上のように構成することにより、ＰＬＣ１５は複数のＰＬＣに分配して実行されたプログラムの同期をとることが可能になる。
【００３１】
＜実施形態５＞
本発明の実施形態５について説明する。この実施形態５のＰＬＣ１５では、実施形態４で説明したプログラムの分担方式を採用する。システム内のコントローラが停止したり故障したりした場合に、制御を継続する必要がある場合には、図７に示す各コントローラ内の分岐制御レジスタ９２の内容を変更するだけでプログラムの分担状況を変更することができる。
このような方式を採用することにより、プログラムの再ダウンロードを行うことなく、プログラムの分担状況を変化させることができるとともに、変更に要する時間も短くて済むので、プログラムの分担実行の継続可能性が増大する。
【００３２】
＜実施形態６＞
本発明の実施形態６について説明する。すでに述べた実施形態４においては、並列実行時の動作について説明した。しかし、ここで説明する実施形態のＰＬＣ１５では、図６に示す分岐制御テーブル９１を使用するが、このテーブルは並列分岐の制御だけではなく、プログラム毎の実行制御にも使用できるように構成される。
したがって、この分岐制御テーブル９１を使用することにより、並列実行プログラムだけでなく、直列実行プログラムも分担実行することが可能になる。このために、ＰＬＣ１５のプログラムを、図９に示す構成となるようにコンパイルする。
図９に示すように、各プログラムの先頭にはプログラム識別命令１００が置かれ、分岐プログラムＰ１，Ｐ２，…，Ｐｎの境界にはプログラム区分命令１０１，１０２，…，１０ｎが置かれる。プログラム識別命令プ１００およびプログラム区分命令１０１〜１０ｎの構成例を図１０に示す。
【００３３】
図１０に示すように、プログラム識別命令１００は、オペレーションコード（オペコード）１００ａ、タスク番号１００ｂ、およびプログラム番号１００ｃからなり、プログラム区分命令１０１〜１０ｎは、オペコード１０１ａ、プログラム区分番号１０１ｂ、および次プログラム区分命令アドレス１０１ｃからなっている。
このように、プログラム区分命令１０１〜１０ｎは、次のプログラム区分命令のアドレスすなわち次プログラム区分命令アドレス１０１ｃと組み合わされており、図７の分岐制御レジスタ９２の内容を参照して、自コントローラが実行すべき分岐プログラムの場合にはプログラム区分命令に続くプログラムを実行するが、自コントローラが実行しないプログラムの場合には次プログラム区分命令にジャンプすることにより、プログラムを高速に読み飛ばすように構成する。このように構成することにより、プログラムの実行部分を指定可能にするとともに、高速実行が可能になる。
【００３４】
＜実施形態７＞
本発明の実施形態７について説明する。本発明のＰＬＣでは、図６に示す分岐制御テーブル９１を用いる。そのため、各コントローラの実行プログラムを任意に重複させて設定することが可能である。したがって、任意のプログラムを任意に台数のコントローラで並列に実行させ、その完了情報が全コントローラに同報されることを利用して、各コントローラの実行完了の同期をとることが可能である。
また、その実行結果を比較し、その比較結果を参照して、例えば多数決をとることにより、単一の比較結果を出力する。こうすることにより、分散配置された複数台のコントローラを利用して多重化システムを構築することが可能となる。この方式では、複数台のコントローラを同一の筐体に格納したり、ハード的に密結合したりする必要がないので、より自由度の高い配置構成が可能となる。
【００３５】
＜実施形態８＞
本発明の実施形態８について説明する。ＳＦＣプログラムは、動作の推移が分かり易いプログラムではあるが、一方で多数のステップで構成される一連の機能をまとめてモニタしたい、という要求がある。
そこで、この実施形態８のＰＬＣでは、一連のステップ群を１個の代表ステップの動作で表現できるように構成する。これは、例えば、図１１に示すような一連のステップＳｍ〜ＳｎのＳＦＣプログラムを、単一の代表ステップＭｍで代表させて表現する機能である。
この代表ステップＭｍを、マクロステップと呼ぶことにする。このマクロステップＭｍを使用したプログラム経路は、図１２に示す経路の形にコンパイルされて実行される。すなわち、マクロステップＭｍと元のＳＦＣプログラムＳｍ〜Ｓｎとはあたかも並列実行されるかのようにコンパイルされる。命令語順の一例を、図１３に示す。
【００３６】
図１３において、分岐プログラムを容易に識別できるように、元のＳＦＣプログラムＳｍ〜Ｓｎの先頭ステップはマクロスタートステップ命令に、最終ステップはマクロエンドステップ命令に変更される。
これは、マクロ化されたプログラムの範囲をモニタ装置に伝えるためである。実際のプログラムは図１３に示したようになるが、モニタ装置でこのプログラムを表示する場合は、マクロステップＭｍだけを表示し、マクロスタートステップＳｍからマクロエンドステップＳｎまでのプログラムは表示しないようにする。
また、マクロステップＭｍに続く遷移条件は常にＯＮしている。マクロステップＭｍは元のプログラム全体が実行完了となるまでの間ＯＮの状態を継続し、マクロエンドステップが実行され、それに付随する遷移条件Ｔｎ（図１１，１２参照）がＯＮになったときに次のステップへ遷移する。ここで、マクロスタートステップ命令とマクロエンドステップ命令の動作は、通常のステップ命令と全く同様である。
ただ、通常のステップ命令とは命令コードだけが異なっており、モニタ装置がマクロスタートステップ命令およびマクロエンドステップ命令を他のステップ命令とは識別できるようにしている。
このように構成することにより、任意の範囲のＳＦＣステップ群を１個のマクロステップ命令で代表して表現することができるので、ステップの動作状態を非常に分かりやすく表示することができる。
【００３７】
【発明の効果】
以上述べたように本発明によれば、ＳＦＣプログラムを実行するプログラマブルコントローラにおいて、ＳＦＣプログラムの各ステップ毎の実行状態を管理する情報およびステップ間の遷移を制御する情報を、複数のタスクやコントローラから共通にアクセスできる領域におくことにより、複数のタスクあるいはコントローラによるプログラムの並列実行や分担実行などの協調動作を可能にすることができる。
【００３８】
また、プログラムを機能毎に分割した単位だけでなく、分割経路毎にも分担実行したり、並列実行できるように構成可能であり、その分担の設定をプログラムとは別の管理情報で実行することにより、プログラムの分担状態を変更する際にプログラムの再ローディングを不要にすることができる。
【００３９】
さらに、任意のプログラム部分を複数のコントローラに重複して割り付けた状態で実行させ、その結果を比較してから結果を出力させることにより、コントローラの多重化をプログラム単位で実現することができ、その結果、システムの信頼性を向上させることができる。
【００４０】
さらにまた、任意のプログラム部分を１個のステップで代表してモニタする機能を設けることにより、一連のステップからなるプログラムの全体としての動作状態を容易に把握することができる。
【図面の簡単な説明】
【図１】  本発明によるプログラマブルコントローラのハードウェア構成例を説明するためのブロック線図。
【図２】  本発明に係るステップ命令の形式を示す説明図。
【図３】  本発明に係るオペランドの論理セグメントを示す説明図。
【図４】  ステップ命令のオペランドを示す説明図。
【図５】  分岐制御情報の構成を示す説明図。
【図６】  分岐制御テーブルの構成を示す説明図。
【図７】  分岐制御レジスタの構成例を示す説明図。
【図８】  並列分岐プログラムの完了チェック時の状態を示す説明図。
【図９】  並列分岐プログラムのコンパイルされた状態を示す説明図。
【図１０】  プログラム識別命令およびプログラム区分命令の構成を示す説明図。
【図１１】  マクロステップの動作を示す説明図。
【図１２】  図１１のマクロステップの動作経路を示す説明図。
【図１３】  マクロステップの命令語構成を示す説明図。
【図１４】  本発明を適用するコントローラシステムのハードウェア構成の一例を示すブロック線図。
【図１５】  ＳＦＣプログラムの動作を示す説明図。
【符号の説明】
１  ＣＰＵ
２  プログラムメモリ
３  ワークメモリ
４  シーケンス演算プロセッサ
５  シーケンスプログラムメモリ
６  データメモリ
７  マイコンバス
８  通信インターフェイス
９  入出力インターフェイス（Ｉ／Ｏ）
１０  バスインターフェイス
１５  プログラマブルコントローラ（ＰＬＣ）
２０  コントローラ間バス
２１  伝送装置
２２  共有メモリ
３０  コントローラ装置
３０ａ〜３０ｎ  コントローラ
３１  伝送線路
３２ａ〜３２ｎ  伝送装置
３３  コントローラ装置
３３ａ〜３３ｎ  コントローラ
４０  モニタ装置
【図１】
0003813756.tif 000002
【図２】
0003813756.tif 000003
【図３】
0003813756.tif 000004
【図４】
0003813756.tif 000005
【図５】
0003813756.tif 000006
【図６】
0003813756.tif 000007
【図７】
0003813756.tif 000008
【図８】
0003813756.tif 000009
【図９】
0003813756.tif 000010
【図１０】
0003813756.tif 000011
【図１１】
0003813756.tif 000012
【図１２】
0003813756.tif 000013
【図１３】
0003813756.tif 000014
【図１４】
0003813756.tif 000015
【図１５】
0003813756.tif 000016