JPH06259114A - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ

Info

Publication number
JPH06259114A
JPH06259114A JP4106393A JP4106393A JPH06259114A JP H06259114 A JPH06259114 A JP H06259114A JP 4106393 A JP4106393 A JP 4106393A JP 4106393 A JP4106393 A JP 4106393A JP H06259114 A JPH06259114 A JP H06259114A
Authority
JP
Japan
Prior art keywords
circuit
execution
sequence program
cpu
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.)
Granted
Application number
JP4106393A
Other languages
English (en)
Other versions
JP3126006B2 (ja
Inventor
Tsutomu Sunaga
勉 須永
Atsushi Ito
厚 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP05041063A priority Critical patent/JP3126006B2/ja
Publication of JPH06259114A publication Critical patent/JPH06259114A/ja
Application granted granted Critical
Publication of JP3126006B2 publication Critical patent/JP3126006B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】 複数のCPUでシーケンスプログラムを並列
処理し実行速度の高速化を図る。 【構成】 プログラマブルコントローラの複数のCPU
1,2,3の夫々に、シーケンスプログラムを1回路単
位に読み出し実行する機能を持たせ、各CPU1,2,
3からのデータメモリ10とユーザプログラムメモリ1
1及びPI/Oバスコントローラ13のアクセスをバス
競合管理回路14で管理させ、各CPU1,2,3間の
シーケンスプログラムの実行をユーザプログラムメモリ
11内に設けた実行管理テーブルで管理する。これによ
り、並列実行について何ら考慮する事なくシーケンスプ
ログラムを作成することができ、CPUモジュールを複
数実装することで、シーケンスプログラムを各CPUが
自動的に並列に実行し、シーケンスプログラムを高速処
理できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラマブルコントロ
ーラに係り、特に、シーケンスプログラムを高速に実行
するのに好適なプログラマブルコントローラとその方法
に関する。
【0002】
【従来の技術】プログラマブルコントローラのシーケン
スプログラム実行速度を高速化したいとするユーザの要
望が高い。この要望には、シーケンスプログラム実行用
プロセッサの1命令当たりの処理速度を高速化すること
で対処できるが、これは、半導体チップの性能に関わる
ため、チップ製造技術に依存することになる。
【0003】そこで、マルチプロセッサ型コンピュータ
の例にならってCPUを複数設け、シーケンスプログラ
ムを複数のCPUで並列処理させることで、処理の高速
化を図ることが可能と考えられる。しかし、マルチプロ
セッサシステムの技術を単にそのままプログラマブルコ
ントローラに適用しても様々な問題が生じる。
【0004】マルチプロセッサ型コンピュータでは、プ
ログラムを並列処理用として作成しなければならず、プ
ログラム作成に高度な専門知識が必要である。従って、
これをプログラマブルコントローラに適用したとき、ユ
ーザに高度なプログラム作成知識が要求され、実用的で
ない。また、プログラマブルコントローラのユーザの傾
向から考えると、最初はCPU1個のプログラマブルコ
ントローラを購入し、高速化が必要になったとき後から
CPUを増設ししかもシーケンスプログラムは変更した
くないと考えるはずである。このため、コンピュータの
マルチプロセッサシステムの様に必ずプログラム側でマ
ルチプロセッサに対応しなければならない技術をそのま
まプログラマブルコントローラに適用することは不可能
である。
【0005】従って、従来のCPUを複数備えるプログ
ラマブルコントローラは、特開昭57−212519号
公報記載の様に、各CPUが自己に割り当てられた1つ
のシーケンスプログラムを実行するものにすぎず、1つ
のシーケンスプログラムを複数のCPUが並列処理する
ものとは程遠いものとなっている。
【0006】
【発明が解決しようとする課題】上記従来技術は、各C
PUが夫々1つのシーケンスプログラムを実行するもの
のため、シーケンスプログラム実行速度を高速化するも
のではない。
【0007】本発明の目的は、シーケンスプログラムの
変更なしにCPUを後から自由に増設することができ複
数のCPUで1つのシーケンスプログラムを並列処理し
て実行速度を向上させることの可能なプログラマブルコ
ントローラを提供することにある。
【0008】
【課題を解決するための手段】上記目的は、シーケンス
プログラム実行用プロセッサとシステムメモリでCPU
モジュールを構成し、このCPUモジュールにユーザプ
ログラムメモリから1回路単位にシーケンスプログラム
を読み出して実行する機能を持たせ、複数のCPUモジ
ュールで1つのシーケンスプログラムを実行可能とする
ために、各CPUからのユーザプログラムメモリとデー
タメモリ及び各種I/Oへのアクセスを管理するバス競
合管理回路を設け、更に各CPU間でシーケンスプログ
ラムの実行を管理するためにシーケンスプログラムの各
回路の先頭アドレスとその回路の実行フラグ領域からな
る管理テーブルをユーザプログラムメモリ内に持たせる
ことで、達成される。
【0009】
【作用】各CPUモジュールが1回路単位に実行し、バ
ス競合管理回路と管理テーブルが管理する構成としたた
め、1つのシーケンスプログラムを複数のCPUモジュ
ールで並列に実行し、高速処理することが可能になる。
しかも後からCPUモジュールを増設するだけで、増設
後のCPUモジュール数の並列処理が実行される。ユー
ザは並列処理を意識することなくシーケンスプログラム
を作成できる。
【0010】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。図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とを備える。
【0011】各CPU1,2,3は、ユーザプログラム
メモリ11に格納されているシーケンスプログラムを1
回路単位に読み出し実行する機能を持つ。各CPU1,
2,3は、独立して動作し、同一のシーケンスプログラ
ムを1回路単位に分割し、並列に実行する。各CPU
1,2,3のうち、ある固定の位置(たとえばユーザプ
ログラムメモリ11に物理的に最も近い位置)に実装さ
れたCPU(図1の例ではCPU1)がマスタCPUと
なり、シーケンスプログラムの1スキャン(プログラム
の先頭回路から最終回路まで)実行の管理を行う。
【0012】図2は、シーケンスプログラムの一例を示
す図である。シーケンスプログラムはラダー回路として
表現され、その1スキャンにおける実行は、各回路単位
に完結し、前段回路の実行結果が次段の回路の実行に関
わることはない。つまり、ある回路の実行結果が別の回
路の実行に関わる場合には、次のスキャン時にこの別の
回路の実行結果に反映され、同一スキャン中では各回路
の実行は独立である。従って、1つのシーケンスプログ
ラムを回路単位に分割し、別々のプロセッサで実行して
も、そのシーケンスプログラムで行う制御には影響しな
い。
【0013】図3は、図2のシーケンスプログラムがユ
ーザプログラムメモリ11に格納されたときのメモリ構
成を示すものである。シーケンスプログラムは1命令単
位にオペコードとオペランドに分割されて格納され、1
命令単位にアドレスが付けられる。
【0014】図4は、ユーザプログラムメモリ11内に
作成するシーケンスプログラム実行管理テーブルで、各
回路の先頭アドレスと実行フラグ領域で構成される。各
CPUは、この管理テーブルを参照し、実行を行ったす
ぐ後の回路からまだ実行されてない回路を探して実行フ
ラグをセットし、その回路の先頭アドレスを取り出して
そのアドレスからシーケンスプログラムを1回路分実行
する。実行フラグはシーケンスプログラムを1スキャン
実行したときにマスタCPUによりクリアされる。
【0015】図5及び図6は、CPUのシーケンスプロ
グラム実行処理を行うシステムプログラムの処理手順を
示すフローチャートである。シーケンスプログラムの実
行を開始すると、まず初期化処理として実行候補回路N
o.に“1”を設定する(ステップ200)。次に、シ
ーケンスプログラム実行管理テーブル(図4)の実行候
補回路の実行フラグを判断し(ステップ201)、候補
回路が未実行である場合は該候補回路1回路を実行する
(ステップ202)。ステップ202の候補回路の実行
後あるいはステップ201での判断で候補回路が既に実
行済である場合は、その回路が最終回路であるかどうか
判断し(ステップ203)、最終回路でない場合は実行
候補回路No.を+1して再びステップ201に戻る。
【0016】ステップ201で実行フラグを判断する場
合、フラグの参照はフラグを読んだときにフラグがセッ
トされていなければ読み出しと同時にフラグがセットさ
れるテストアンドセットの方式とし、複数のCPUが同
一の回路を同時に未実行と判断することを防止する。ス
テップ201〜204を、実行候補回路が最終回路にな
るまで繰り返すことにより、シーケンスプログラムが1
スキャン実行される。
【0017】1スキャンの実行が終了すると、ユーザプ
ログラムメモリにある各CPUに対応したスキャン終了
フラグ(図7)をセットし(ステップ205)、自分が
マスタCPUになっているかどうかを判断し(ステップ
206)、マスタCPUでなければ自分のスキャン終了
フラグがリセットされるのを待つ(ステップ208)。
スキャン終了フラグがリセットされた場合、再びステッ
プ200に戻り、次のスキャンを実行する。
【0018】ステップ206の判断で自分がマスタCP
Uになっている場合は、全CPUのスキャン終了フラグ
がセットされるのを待ち(ステップ207)、全CPU
のスキャン終了フラグがセットされたら、実行結果を外
部I/Oに反映する出力フレッシュ処理を行い(ステッ
プ209)、さらにその時点の入力信号を取り込む入力
フレッシュ処理を行い(ステップ210)、実行管理テ
ーブルの実行フラグを全てクリアし(ステップ21
1)、全CPUのスキャン終了フラグをクリアして(ス
テップ212)、再びステップ200に戻り、次のスキ
ャンを実行する。
【0019】本実施例では、マスタCPUの決定をCP
Uの実装位置により行うものとしたが、各CPUにスイ
ッチを設け、そのスイッチの設定によりマスタCPUを
決定する方法もある。この方法にすると、ユーザが自分
で任意のCPUをマスタCPUに設定することができ
る。
【0020】図8は、CPUモジュールのプログラマブ
ルコントローラへの増設を説明する図である。従来のプ
ログラマブルコントローラは、CPUモジュールを装着
する位置が決まっていたが、本実施例では、プログラマ
ブルコントローラに複数のCPUモジュールを装着でき
るようにするため、CPUモジュールや電源モジュール
等の各モジュールの接続部分を共通化する。これによ
り、各モジュールの装着順を気にすることなく、CPU
モジュールをどの場所にも装着できるようになる。尚、
図8に示す様に、複数のCPUモジュールを実装するの
ではなく、1つCPUモジュール内にシーケンスプログ
ラム実行用プロセッサを複数内蔵する構成でもよいこと
はいうまでもない。この場合、CPUモジュールの占め
る実装面積が少なくて済む。また、モジュール形式では
なく、ICカードを装着する形式とすることも可能であ
る。
【0021】上記実施例において、ダイレクト方式(入
出力のリフレッシュを行わない方式)を採用する場合に
は、マスタCPUは不要とすることができる。この場
合、実行管理テーブルの実行フラグを各回路実行後にク
リアすれば良い。さらに、各CPU毎のスキャン終了フ
ラグも不要である。
【0022】
【発明の効果】本発明によれば、ユーザはシーケンスプ
ログラム作成時に並列実行について何ら考慮する事な
く、プロセッサを複数実装することで、シーケンスプロ
グラムを各プロセッサが自動的に並列に実行し、シーケ
ンスプログラムを高速に実行することができる。また、
システム構築後も、後からCPUモジュールを追加実装
するだけで、更に高速にシーケンスプログラムを実行す
ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るプログラマブルコント
ローラのハードウェア構成図である。
【図2】シーケンスプログラムの例を示す図である。
【図3】図2のシーケンスプログラムが格納されたとき
のユーザプログラムメモリの内容構成図である。
【図4】シーケンスプログラムの実行管理テーブル説明
図である。
【図5】CPUのシーケンスプログラム実行処理を示す
フローチャートである。
【図6】図5のフローチャートに続くフローチャートで
ある。
【図7】スキャン終了フラグ管理テーブル説明図であ
る。
【図8】プログラマブルコントローラのCPUモジュー
ル増設時の説明図である。
【符号の説明】
1,2,3…CPU、10…データメモリ、11…ユー
ザプログラムメモリ、12…アドレスデコーダ、13…
PI/Oバスコントローラ、14…バス競合管理回路、
15…プロセッサ、16…システムメモリ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 シーケンスプログラムを記憶するユーザ
    プログラムメモリと、前記シーケンスプログラムを前記
    ユーザプログラムメモリより読み出しその制御を実行す
    るプロセッサと、実行結果及び途中経過を格納するデー
    タメモリと、制御のための外部信号を入出力するインタ
    フェース部とを備えるプログラマブルコントローラにお
    いて、前記プロセッサを複数設けると共に各プロセッサ
    に前記シーケンスプログラム中の未実行の回路を1回路
    単位に読み出して実行する手段を設けると共に、各プロ
    セッサの前記ユーザプログラムメモリまたは前記データ
    メモリまたは前記インタフェース部へのアクセスの競合
    を回避するバス競合管理回路と、回路単位に各回路の先
    頭アドレスと実行/未実行を示すフラグ領域とを有し各
    プロセッサがフラグの値から未実行の回路を判断して該
    未実行回路を実行したとき該フラグを実行を示す値に書
    換える管理テーブルとを設けたことを特徴とするプログ
    ラマブルコントローラ。
  2. 【請求項2】 シーケンスプログラムを記憶するユーザ
    プログラムメモリと、1スキャン中に前記シーケンスプ
    ログラム中の未実行の回路を回路を回路単位に読み出し
    実行する複数のプロセッサと、実行結果及び途中経過を
    格納するデータメモリと、制御のための外部信号を入出
    力するインタフェース部と、各プロセッサの前記ユーザ
    プログラムメモリまたは前記データメモリまたは前記イ
    ンタフェース部へのアクセスの競合を回避するバス競合
    管理手段とを設けたことを特徴とするプログラマブルコ
    ントローラ。
  3. 【請求項3】 シーケンスプログラムを構成する各回路
    毎に回路先頭アドレスと該回路の実行の有無を示すフラ
    グとの対を格納した管理テーブルと、該管理テーブルを
    参照し実行無の回路を取り出し実行して該管理テーブル
    の該当フラグを実行有にするプロセッサとを備え、該プ
    ロセッサが複数装着されたとき各プロセッサが前記管理
    テーブルを参照して回路単位に前記シーケンスプログラ
    ムを並列処理することを特徴とするプログラマブルコン
    トローラ。
  4. 【請求項4】 請求項3において、前記プロセッサを1
    個内蔵するCPUモジュールまたはICカードの接続部
    分を他のモジュールまたはICカードと共通化し任意箇
    所にCPUモジュールまたはICカードを装着可能とし
    たことを特徴とするプログラマブルコントローラ。
  5. 【請求項5】 請求項3において、前記プロセッサを複
    数個内蔵するCPUモジュールまたはICカードを備え
    ることを特徴とするプログラマブルコントローラ。
JP05041063A 1993-03-02 1993-03-02 プログラマブルコントローラ Expired - Lifetime JP3126006B2 (ja)

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 true JPH06259114A (ja) 1994-09-16
JP3126006B2 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241556A (ja) * 2006-03-07 2007-09-20 Mitsubishi Electric Corp 複数の演算装置によるシーケンス処理実行装置
JP2010003039A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd Cpu動作クロック同調式plcバスシステム
JP2013506911A (ja) * 2009-09-30 2013-02-28 ゼネラル・エレクトリック・カンパニイ 多重プロセッサ式のプログラマブルロジックコントローラ及びこれを動作させるための方法
WO2014167622A1 (ja) * 2013-04-08 2014-10-16 三菱電機株式会社 プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
WO2019073565A1 (ja) 2017-10-12 2019-04-18 三菱電機株式会社 分散制御システム
US10394203B2 (en) 2014-11-19 2019-08-27 Mitsubishi Electric Corporation Control device, control method, and program performing a tabulation operation at high speed
JP7037787B1 (ja) * 2021-01-08 2022-03-17 株式会社ザイテック シーケンサー

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241556A (ja) * 2006-03-07 2007-09-20 Mitsubishi Electric Corp 複数の演算装置によるシーケンス処理実行装置
JP2010003039A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd Cpu動作クロック同調式plcバスシステム
JP2013506911A (ja) * 2009-09-30 2013-02-28 ゼネラル・エレクトリック・カンパニイ 多重プロセッサ式のプログラマブルロジックコントローラ及びこれを動作させるための方法
WO2014167622A1 (ja) * 2013-04-08 2014-10-16 三菱電機株式会社 プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
JP5936769B2 (ja) * 2013-04-08 2016-06-22 三菱電機株式会社 プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
JPWO2014167622A1 (ja) * 2013-04-08 2017-02-16 三菱電機株式会社 プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
US10394203B2 (en) 2014-11-19 2019-08-27 Mitsubishi Electric Corporation Control device, control method, and program performing a tabulation operation at high speed
WO2019073565A1 (ja) 2017-10-12 2019-04-18 三菱電機株式会社 分散制御システム
US11531315B2 (en) 2017-10-12 2022-12-20 Mitsubishi Electric Corporation Distributed control system
JP7037787B1 (ja) * 2021-01-08 2022-03-17 株式会社ザイテック シーケンサー

Also Published As

Publication number Publication date
JP3126006B2 (ja) 2001-01-22

Similar Documents

Publication Publication Date Title
US6611912B1 (en) Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
JP2822782B2 (ja) シングルチップマイクロコンピュータ
GB2216306A (en) Load and synchronize computer architecture and process
JPH06259114A (ja) プログラマブルコントローラ
JP2000010913A (ja) 情報処理装置および方法、並びに提供媒体
JP2821345B2 (ja) 非同期i/o制御方式
JPH05173985A (ja) プログラマブルコントローラ
JP3531368B2 (ja) コンピュータシステム及びバス間制御回路
US11656796B2 (en) Adaptive memory consistency in disaggregated datacenters
JP2001290790A (ja) ディスク制御装置
JP2002259209A (ja) 演算処理システム
JPH01121965A (ja) マイクロプロセッサ
JP3810175B2 (ja) グラフィックスプロセッサおよび図形処理装置
JPH06314231A (ja) 共用メモリアクセス制御方法
JP2002207714A (ja) マルチプロセッサ装置
JP3187117B2 (ja) マルチプロセッサ内蔵1チップマイクロコンピュータ
JPH02257241A (ja) メモリアクセス競合改善方式
JPH04177452A (ja) 情報処理装置
JPH11102340A (ja) プロセッサシステム及びそのバスアクセス方法
JPH10289220A (ja) マルチcpu処理装置
JPH06175880A (ja) 情報処理装置
JPH0816405A (ja) システム初期化装置
JPH10134013A (ja) マルチcpuシステム
JPH05274212A (ja) メモリ初期化処理方法
JPH1165994A (ja) バス制御回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20071102

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081102

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20091102

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 12

Free format text: PAYMENT UNTIL: 20121102

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 12

Free format text: PAYMENT UNTIL: 20121102

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 13

EXPY Cancellation because of completion of term