JP3126006B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JP3126006B2 JP3126006B2 JP05041063A JP4106393A JP3126006B2 JP 3126006 B2 JP3126006 B2 JP 3126006B2 JP 05041063 A JP05041063 A JP 05041063A JP 4106393 A JP4106393 A JP 4106393A JP 3126006 B2 JP3126006 B2 JP 3126006B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- sequence program
- execution
- programmable controller
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Programmable Controllers (AREA)
Description
ーラに係り、特に、シーケンスプログラムを高速に実行
するのに好適なプログラマブルコントローラに関する。
スプログラム実行速度を高速化したいとするユーザの要
望が高い。この要望には、シーケンスプログラム実行用
プロセッサの1命令当たりの処理速度を高速化すること
で対処できるが、これは、半導体チップの性能に関わる
ため、チップ製造技術に依存することになる。
の例にならってCPUを複数設け、シーケンスプログラ
ムを複数のCPUで並列処理させることで、処理の高速
化を図ることが可能と考えられる。しかし、マルチプロ
セッサシステムの技術を単にそのままプログラマブルコ
ントローラに適用しても様々な問題が生じる。
ログラムを並列処理用として作成しなければならず、プ
ログラム作成に高度な専門知識が必要である。従って、
これをプログラマブルコントローラに適用したとき、ユ
ーザに高度なプログラム作成知識が要求され、実用的で
ない。また、プログラマブルコントローラのユーザの傾
向から考えると、最初はCPU1個のプログラマブルコ
ントローラを購入し、高速化が必要になったとき後から
CPUを増設ししかもシーケンスプログラムは変更した
くないと考えるはずである。このため、コンピュータの
マルチプロセッサシステムの様に必ずプログラム側でマ
ルチプロセッサに対応しなければならない技術をそのま
まプログラマブルコントローラに適用することは不可能
である。
ラマブルコントローラは、特開昭57−212519号
公報記載の様に、各CPUが自己に割り当てられた1つ
のシーケンスプログラムを実行するものにすぎず、1つ
のシーケンスプログラムを複数のCPUが並列処理する
ものとは程遠いものとなっている。
PUが夫々1つのシーケンスプログラムを実行するもの
のため、シーケンスプログラム実行速度を高速化するも
のではない。
変更なしにCPUを後から自由に増設することができ複
数のCPUで1つのシーケンスプログラムを並列処理し
て実行速度を向上させることの可能なプログラマブルコ
ントローラを提供することにある。
プログラム実行用プロセッサとシステムメモリでCPU
モジュールを構成し、このCPUモジュールにユーザプ
ログラムメモリから1回路単位にシーケンスプログラム
を読み出して実行する機能を持たせ、複数のCPUモジ
ュールで1つのシーケンスプログラムを実行可能とする
ために、各CPUからのユーザプログラムメモリとデー
タメモリ及び各種I/Oへのアクセスを管理するバス競
合管理回路を設け、更に各CPU間でシーケンスプログ
ラムの実行を管理するためにシーケンスプログラムの各
回路の先頭アドレスとその回路の実行フラグ領域からな
る管理テーブルをユーザプログラムメモリ内に持たせる
ことで、達成される。
ス競合管理回路と管理テーブルが管理する構成としたた
め、1つのシーケンスプログラムを複数のCPUモジュ
ールで並列に実行し、高速処理することが可能になる。
しかも後からCPUモジュールを増設するだけで、増設
後のCPUモジュール数の並列処理が実行される。ユー
ザは並列処理を意識することなくシーケンスプログラム
を作成できる。
明する。図1は、本発明の一実施例に係るプログラマブ
ルコントローラのハードウェア構成図である。本実施例
に係るプログラマブルコントローラは、3つのCPU
1,2,3を備え、各CPU1,2,3は、夫々シーケ
ンスプログラム実行用プロセッサ15とシステムメモリ
16とを備える。プログラマブルコントローラは更に、
実行結果及び途中経過を格納するデータメモリ10と、
ユーザが作成したシーケンスプログラムを格納するユー
ザプログラムメモリ11と、CPU1,2,3からデー
タメモリ10及びユーザプログラムメモリ11をアクセ
ス可能とするアドレスレコーダ12と、外部制御信号の
入出力インタフェースを行うPI/Oバスコントローラ
13と、複数のCPU1,2,3からのデータメモリ1
0とユーザプログラムメモリ11及びPI/Oバスコン
トローラ13のアクセスを管理するバス競合管理回路1
4とを備える。
メモリ11に格納されているシーケンスプログラムを1
回路単位に読み出し実行する機能を持つ。各CPU1,
2,3は、独立して動作し、同一のシーケンスプログラ
ムを1回路単位に分割し、並列に実行する。各CPU
1,2,3のうち、ある固定の位置(たとえばユーザプ
ログラムメモリ11に物理的に最も近い位置)に実装さ
れたCPU(図1の例ではCPU1)がマスタCPUと
なり、シーケンスプログラムの1スキャン(プログラム
の先頭回路から最終回路まで)実行の管理を行う。
す図である。シーケンスプログラムはラダー回路として
表現され、その1スキャンにおける実行は、各回路単位
に完結し、前段回路の実行結果が次段の回路の実行に関
わることはない。つまり、ある回路の実行結果が別の回
路の実行に関わる場合には、次のスキャン時にこの別の
回路の実行結果に反映され、同一スキャン中では各回路
の実行は独立である。従って、1つのシーケンスプログ
ラムを回路単位に分割し、別々のプロセッサで実行して
も、そのシーケンスプログラムで行う制御には影響しな
い。
ーザプログラムメモリ11に格納されたときのメモリ構
成を示すものである。シーケンスプログラムは1命令単
位にオペコードとオペランドに分割されて格納され、1
命令単位にアドレスが付けられる。
作成するシーケンスプログラム実行管理テーブルで、各
回路の先頭アドレスと実行フラグ領域で構成される。各
CPUは、この管理テーブルを参照し、実行を行ったす
ぐ後の回路からまだ実行されてない回路を探して実行フ
ラグをセットし、その回路の先頭アドレスを取り出して
そのアドレスからシーケンスプログラムを1回路分実行
する。実行フラグはシーケンスプログラムを1スキャン
実行したときにマスタCPUによりクリアされる。
グラム実行処理を行うシステムプログラムの処理手順を
示すフローチャートである。シーケンスプログラムの実
行を開始すると、まず初期化処理として実行候補回路N
o.に“1”を設定する(ステップ200)。次に、シ
ーケンスプログラム実行管理テーブル(図4)の実行候
補回路の実行フラグを判断し(ステップ201)、候補
回路が未実行である場合は該候補回路1回路を実行する
(ステップ202)。ステップ202の候補回路の実行
後あるいはステップ201での判断で候補回路が既に実
行済である場合は、その回路が最終回路であるかどうか
判断し(ステップ203)、最終回路でない場合は実行
候補回路No.を+1して再びステップ201に戻る。
合、フラグの参照はフラグを読んだときにフラグがセッ
トされていなければ読み出しと同時にフラグがセットさ
れるテストアンドセットの方式とし、複数のCPUが同
一の回路を同時に未実行と判断することを防止する。ス
テップ201〜204を、実行候補回路が最終回路にな
るまで繰り返すことにより、シーケンスプログラムが1
スキャン実行される。
ログラムメモリにある各CPUに対応したスキャン終了
フラグ(図7)をセットし(ステップ205)、自分が
マスタCPUになっているかどうかを判断し(ステップ
206)、マスタCPUでなければ自分のスキャン終了
フラグがリセットされるのを待つ(ステップ208)。
スキャン終了フラグがリセットされた場合、再びステッ
プ200に戻り、次のスキャンを実行する。
Uになっている場合は、全CPUのスキャン終了フラグ
がセットされるのを待ち(ステップ207)、全CPU
のスキャン終了フラグがセットされたら、実行結果を外
部I/Oに反映する出力フレッシュ処理を行い(ステッ
プ209)、さらにその時点の入力信号を取り込む入力
フレッシュ処理を行い(ステップ210)、実行管理テ
ーブルの実行フラグを全てクリアし(ステップ21
1)、全CPUのスキャン終了フラグをクリアして(ス
テップ212)、再びステップ200に戻り、次のスキ
ャンを実行する。
Uの実装位置により行うものとしたが、各CPUにスイ
ッチを設け、そのスイッチの設定によりマスタCPUを
決定する方法もある。この方法にすると、ユーザが自分
で任意のCPUをマスタCPUに設定することができ
る。
ルコントローラへの増設を説明する図である。従来のプ
ログラマブルコントローラは、CPUモジュールを装着
する位置が決まっていたが、本実施例では、プログラマ
ブルコントローラに複数のCPUモジュールを装着でき
るようにするため、CPUモジュールや電源モジュール
等の各モジュールの接続部分を共通化する。これによ
り、各モジュールの装着順を気にすることなく、CPU
モジュールをどの場所にも装着できるようになる。尚、
図8に示す様に、複数のCPUモジュールを実装するの
ではなく、1つCPUモジュール内にシーケンスプログ
ラム実行用プロセッサを複数内蔵する構成でもよいこと
はいうまでもない。この場合、CPUモジュールの占め
る実装面積が少なくて済む。また、モジュール形式では
なく、ICカードを装着する形式とすることも可能であ
る。
出力のリフレッシュを行わない方式)を採用する場合に
は、マスタCPUは不要とすることができる。この場
合、実行管理テーブルの実行フラグを各回路実行後にク
リアすれば良い。さらに、各CPU毎のスキャン終了フ
ラグも不要である。
ログラム作成時に並列実行について何ら考慮する事な
く、プロセッサを複数実装することで、シーケンスプロ
グラムを各プロセッサが自動的に並列に実行し、シーケ
ンスプログラムを高速に実行することができる。また、
システム構築後も、後からCPUモジュールを追加実装
するだけで、更に高速にシーケンスプログラムを実行す
ることができる。
ローラのハードウェア構成図である。
のユーザプログラムメモリの内容構成図である。
図である。
フローチャートである。
ある。
る。
ル増設時の説明図である。
ザプログラムメモリ、12…アドレスデコーダ、13…
PI/Oバスコントローラ、14…バス競合管理回路、
15…プロセッサ、16…システムメモリ。
Claims (4)
- 【請求項1】 シーケンスプログラムを記憶するユーザ
プログラムメモリと、前記シーケンスプログラムを前記
ユーザプログラムメモリより読み出しその制御を実行す
るプロセッサと、実行結果及び途中経過を格納するデー
タメモリと、制御のための外部信号を入出力するインタ
フェース部とを備えるプログラマブルコントローラにお
いて、前記プロセッサを複数設けると共に各プロセッサ
に前記シーケンスプログラム中の未実行の回路を1回路
単位に読み出して実行する手段を設けると共に、各プロ
セッサの前記ユーザプログラムメモリまたは前記データ
メモリまたは前記インタフェース部へのアクセスの競合
を回避するバス競合管理回路と、回路単位に各回路の先
頭アドレスと実行/未実行を示すフラグ領域とを有し各
プロセッサがフラグの値から未実行の回路を判断して該
未実行回路を実行したとき該フラグを実行を示す値に書
換える管理テーブルとを設けたことを特徴とするプログ
ラマブルコントローラ。 - 【請求項2】 シーケンスプログラムを構成する各回路
毎に回路先頭アドレスと該回路の実行の有無を示すフラ
グとの対を格納した管理テーブルと、該管理テーブルを
参照し実行無の回路を取り出し実行して該管理テーブル
の該当フラグを実行有にするプロセッサとを備え、該プ
ロセッサが複数装着されたとき各プロセッサが前記管理
テーブルを参照して回路単位に前記シーケンスプログラ
ムを並列処理することを特徴とするプログラマブルコン
トローラ。 - 【請求項3】 請求項2において、前記プロセッサを1
個内蔵するCPUモジュールまたはICカードの接続部
分を他のモジュールまたはICカードと共通化し任意箇
所にCPUモジュールまたはICカードを装着可能とし
たことを特徴とするプログラマブルコントローラ。 - 【請求項4】 請求項2において、前記プロセッサを複
数個内蔵するCPUモジュールまたはICカードを備え
ることを特徴とするプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05041063A JP3126006B2 (ja) | 1993-03-02 | 1993-03-02 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05041063A JP3126006B2 (ja) | 1993-03-02 | 1993-03-02 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06259114A JPH06259114A (ja) | 1994-09-16 |
JP3126006B2 true JP3126006B2 (ja) | 2001-01-22 |
Family
ID=12597978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05041063A Expired - Lifetime JP3126006B2 (ja) | 1993-03-02 | 1993-03-02 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3126006B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4547469B2 (ja) * | 2006-03-07 | 2010-09-22 | 三菱電機株式会社 | 複数の演算装置によるシーケンス処理実行装置 |
JP5107152B2 (ja) * | 2008-06-19 | 2012-12-26 | 光洋電子工業株式会社 | Cpu動作クロック同調式plcバスシステム |
US8347044B2 (en) * | 2009-09-30 | 2013-01-01 | General Electric Company | Multi-processor based programmable logic controller and method for operating the same |
DE112013006915T5 (de) * | 2013-04-08 | 2015-12-24 | Mitsubishi Electric Corp. | Programmeditiergerät, Programmeditierverfahren und Programmeditierprogramm |
KR101840990B1 (ko) | 2014-11-19 | 2018-03-21 | 미쓰비시덴키 가부시키가이샤 | 제어 장치, 제어 방법 및 프로그램 |
EP3696627B1 (en) | 2017-10-12 | 2023-07-12 | Mitsubishi Electric Corporation | Distributed control system |
JP7037787B1 (ja) * | 2021-01-08 | 2022-03-17 | 株式会社ザイテック | シーケンサー |
-
1993
- 1993-03-02 JP JP05041063A patent/JP3126006B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06259114A (ja) | 1994-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3447404B2 (ja) | マルチプロセッサシステム | |
JPH0775014B2 (ja) | コンピュータにbiosをロードする装置及び方法 | |
US7062578B2 (en) | Flexible processing hardware architecture | |
US20060190656A1 (en) | Flexible processing hardware architecture | |
EP1252569B1 (en) | Virtual rom for device enumeration | |
JPH02503485A (ja) | 多目的メモリ | |
JPH06215160A (ja) | データ処理方法および装置 | |
US20030145194A1 (en) | Bootstrap processor election mechanism on multiple cluster bus systems | |
US6446139B1 (en) | Multiple chip single image BIOS | |
JP2822782B2 (ja) | シングルチップマイクロコンピュータ | |
JP3126006B2 (ja) | プログラマブルコントローラ | |
GB2216306A (en) | Load and synchronize computer architecture and process | |
JP2821345B2 (ja) | 非同期i/o制御方式 | |
JP3514651B2 (ja) | リブート制御装置 | |
JP3531368B2 (ja) | コンピュータシステム及びバス間制御回路 | |
JP3076155B2 (ja) | マルチプロセッサシステムの初期設定方式 | |
JP2003196251A (ja) | マルチcpuシステム | |
JPH11175667A (ja) | 情報カード処理装置 | |
JPH1185529A (ja) | データ記憶システム及びコンピュータシステムの起動方法 | |
JP2001290790A (ja) | ディスク制御装置 | |
JP2927169B2 (ja) | Vme/atボ−ド | |
JP3087477B2 (ja) | コンピュータシステム | |
JPH0240760A (ja) | 情報処理装置 | |
CN118689660A (zh) | 动态显示管理信息的方法、设备、介质及计算机程序产品 | |
JP2001034571A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071102 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081102 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091102 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111102 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131102 Year of fee payment: 13 |
|
EXPY | Cancellation because of completion of term |