JPH10307607A - 主プロセッサ及びプログラマブルコントローラ - Google Patents
主プロセッサ及びプログラマブルコントローラInfo
- Publication number
- JPH10307607A JPH10307607A JP9118067A JP11806797A JPH10307607A JP H10307607 A JPH10307607 A JP H10307607A JP 9118067 A JP9118067 A JP 9118067A JP 11806797 A JP11806797 A JP 11806797A JP H10307607 A JPH10307607 A JP H10307607A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- main processor
- sub
- programmable controller
- processing
- 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.)
- Pending
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【課題】 複数のプロセッサでシーケンス演算を実行す
る場合、一つのプロセッサが実行中でも残りのプロセッ
サは待機状態とならないようにして、ユーザプログラム
全体の処理時間の短縮を図る。 【解決手段】 主プロセッサ1に、副プロセッサ2から
もリード/ライトアクセス可能な2以上の内部レジスタ
12a、12bとテーブル13とを設け、主プロセッサ
1からのメモリ3へのアクセスと副プロセッサ2からの
メモリ3へのアクセスを調停する手段14を設ける。
る場合、一つのプロセッサが実行中でも残りのプロセッ
サは待機状態とならないようにして、ユーザプログラム
全体の処理時間の短縮を図る。 【解決手段】 主プロセッサ1に、副プロセッサ2から
もリード/ライトアクセス可能な2以上の内部レジスタ
12a、12bとテーブル13とを設け、主プロセッサ
1からのメモリ3へのアクセスと副プロセッサ2からの
メモリ3へのアクセスを調停する手段14を設ける。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ラダー言語又はフ
ロー言語を使用し、複数のプロセッサでシーケンス演算
を行う主プロセッサ又はプログラマブルコントローラに
関し、特にプロセッサ間の処理の引き渡し方式に関す
る。
ロー言語を使用し、複数のプロセッサでシーケンス演算
を行う主プロセッサ又はプログラマブルコントローラに
関し、特にプロセッサ間の処理の引き渡し方式に関す
る。
【0002】
【従来の技術】従来、ラダー言語を使用し、2つのプロ
セッサをシーケンス演算に用いたプログラマブルコント
ローラの構成を図7に示す。
セッサをシーケンス演算に用いたプログラマブルコント
ローラの構成を図7に示す。
【0003】従来のプログラマブルコントローラは、主
プロセッサ1´、副プロセッサ2´、メモリ3´、バス
4a´、4b´等で構成されていた。
プロセッサ1´、副プロセッサ2´、メモリ3´、バス
4a´、4b´等で構成されていた。
【0004】主プロセッサ1´と副プロセッサ2´は、
バス4a´で接続されており、また、主プロセッサ1´
とメモリ3´は、バス4b´で接続されていた。
バス4a´で接続されており、また、主プロセッサ1´
とメモリ3´は、バス4b´で接続されていた。
【0005】主プロセッサ1´から副プロセッサ2´へ
1本の割込み信号IRQ1´が接続されている。
1本の割込み信号IRQ1´が接続されている。
【0006】主プロセッサ1´は、演算回路11´、レ
ジスタ12´、テーブル13´等を有していた。
ジスタ12´、テーブル13´等を有していた。
【0007】レジスタ12の出力は、割込み信号IRQ
1´に接続されている。
1´に接続されている。
【0008】パラメータテーブル13´は、副プロセッ
サ2´が応用命令マクロを実行するにあたって必要なパ
ラメータが格納されていた。
サ2´が応用命令マクロを実行するにあたって必要なパ
ラメータが格納されていた。
【0009】主プロセッサ1´は、接点、コイルなどの
ラダーの基本命令を実行し、そして、内部のレジスタ1
2´から出力される割込み信号IRQ1´で副プロセッ
サ2´への割込みを実行していた。
ラダーの基本命令を実行し、そして、内部のレジスタ1
2´から出力される割込み信号IRQ1´で副プロセッ
サ2´への割込みを実行していた。
【0010】副プロセッサ2´は、バス4a´を介し、
ラダーの応用命令を実行していた。
ラダーの応用命令を実行していた。
【0011】メモリ3´は、ユーザプログラムや、シス
テムプログラム、I/Oデータ等を格納し、バス4b´
を介して主プロセッサ1´とデータのやりとりをしてい
た。
テムプログラム、I/Oデータ等を格納し、バス4b´
を介して主プロセッサ1´とデータのやりとりをしてい
た。
【0012】主プロセッサ1´と副プロセッサ2´の処
理の分担方法はさまざまであるが、ここでは、接点、コ
イル等のラダー演算における基本命令を主プロセッサ1
´、応用命令を副プロセッサ2´が行うこととして、図
8、図9、図10を用いて従来の処理の引き渡し方式を
説明する。
理の分担方法はさまざまであるが、ここでは、接点、コ
イル等のラダー演算における基本命令を主プロセッサ1
´、応用命令を副プロセッサ2´が行うこととして、図
8、図9、図10を用いて従来の処理の引き渡し方式を
説明する。
【0013】図8は、ユーザが専用のラダー言語入力装
置を用いて入力したラダープログラムの一部であり、図
9に示すように主プロセッサ1´が実行可能な命令フォ
ーマットに変換してメモリ3´内のユーザプログラムエ
リアに格納される。
置を用いて入力したラダープログラムの一部であり、図
9に示すように主プロセッサ1´が実行可能な命令フォ
ーマットに変換してメモリ3´内のユーザプログラムエ
リアに格納される。
【0014】ラダープログラム内の応用命令は一般的に
サブルーチンの形態をとり、実際の処理はシステムプロ
グラムエリア内に格納されている。
サブルーチンの形態をとり、実際の処理はシステムプロ
グラムエリア内に格納されている。
【0015】また、図8では応用命令1が演算結果をX
1に反映する命令であることを、応用命令2は演算結果
をどこにも反映させない命令であることを指示してお
り、他の引き数等はここでは明記しない。
1に反映する命令であることを、応用命令2は演算結果
をどこにも反映させない命令であることを指示してお
り、他の引き数等はここでは明記しない。
【0016】図10に各プロセッサの動作概略をタイム
チャートで示す。
チャートで示す。
【0017】主プロセッサ1´は起動がかかるとユーザ
プログラムの先頭から実行を開始する。
プログラムの先頭から実行を開始する。
【0018】ステップn+3を実行時、内部レジスタ1
2´に“1”を書き込み、副プロセッサ2に対し割り込
みが出力され、主プロセッサ1´はWAIT状態とな
る。この時点で副プロセッサ2´が応用命令1を実行す
るために必要なパラメータは主プロセッサ1´にあるパ
ラメータテーブル13´に格納されているものとする。
副プロセッサ2´は割り込みがかかると、パラメータテ
ーブル13´を読み出し、応用命令1マクロの実行を開
始する。応用命令1マクロの実行終了時、主プロセッサ
1´の内部レジスタ12´にバス4a´を介して“0”
を書き込む。この時点で主プロセッサ1´はWAITが
解除されユーザプログラムの次の命令実行を開始する。
2´に“1”を書き込み、副プロセッサ2に対し割り込
みが出力され、主プロセッサ1´はWAIT状態とな
る。この時点で副プロセッサ2´が応用命令1を実行す
るために必要なパラメータは主プロセッサ1´にあるパ
ラメータテーブル13´に格納されているものとする。
副プロセッサ2´は割り込みがかかると、パラメータテ
ーブル13´を読み出し、応用命令1マクロの実行を開
始する。応用命令1マクロの実行終了時、主プロセッサ
1´の内部レジスタ12´にバス4a´を介して“0”
を書き込む。この時点で主プロセッサ1´はWAITが
解除されユーザプログラムの次の命令実行を開始する。
【0019】これをユーザプログラムの最後まで実行し
て1スキャンが終了する。
て1スキャンが終了する。
【0020】
【発明が解決しようとする課題】上記、従来の技術では
副プロセッサ2´が応用命令のマクロを実行中、主プロ
セッサ1´は必ずWAIT状態となっている。
副プロセッサ2´が応用命令のマクロを実行中、主プロ
セッサ1´は必ずWAIT状態となっている。
【0021】図8に示すユーザプログラムでは、応用命
令1は演算結果をX1に反映させる命令のため、その処
理が終了するまで主プロセッサ1´はWAIT状態とな
る必要がある。しかしながら、応用命令2に示す演算結
果の戻りがない命令のように、副プロセッサ2´が処理
を終了するまで待たずに主プロセッサ1´が実行可能な
命令までもWAIT状態となってしまう。
令1は演算結果をX1に反映させる命令のため、その処
理が終了するまで主プロセッサ1´はWAIT状態とな
る必要がある。しかしながら、応用命令2に示す演算結
果の戻りがない命令のように、副プロセッサ2´が処理
を終了するまで待たずに主プロセッサ1´が実行可能な
命令までもWAIT状態となってしまう。
【0022】本発明の目的は、ラダー言語及びフロー言
語を使用することが可能であり、そして、主プロセッサ
と、副プロセッサが並列に動作可能なプログラマブルコ
ントローラを提供することにある。
語を使用することが可能であり、そして、主プロセッサ
と、副プロセッサが並列に動作可能なプログラマブルコ
ントローラを提供することにある。
【0023】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、ユーザが作成したプログラム及びI/O
データを格納するメモリと、ユーザからの起動により演
算を開始する主プロセッサと、主プロセッサからの割込
みでシーケンス演算を実行する副プロセッサと、から構
成されるプログラマブルコントローラに使用される主プ
ロセッサにおいて、複数種類の特定の命令を実行時、特
定の値が書き込まれる2以上の数のレジスタと、主プロ
セッサと副プロセッサとの間でデータを渡すためのテー
ブルと、主プロセッサと副プロセッサからメモリへのア
クセスを調停する手段とを具備するプログラマブルコン
トローラ用主プロセッサである。
に、本発明は、ユーザが作成したプログラム及びI/O
データを格納するメモリと、ユーザからの起動により演
算を開始する主プロセッサと、主プロセッサからの割込
みでシーケンス演算を実行する副プロセッサと、から構
成されるプログラマブルコントローラに使用される主プ
ロセッサにおいて、複数種類の特定の命令を実行時、特
定の値が書き込まれる2以上の数のレジスタと、主プロ
セッサと副プロセッサとの間でデータを渡すためのテー
ブルと、主プロセッサと副プロセッサからメモリへのア
クセスを調停する手段とを具備するプログラマブルコン
トローラ用主プロセッサである。
【0024】また、本発明は、ユーザが作成したプログ
ラム及びI/Oデータを格納するメモリと、ユーザから
の起動により演算を開始する主プロセッサと、主プロセ
ッサからの割込みでシーケンス演算を実行する副プロセ
ッサと、から構成されるプログラマブルコントローラに
おいて、主プロセッサは、複数種類の特定の命令を実行
時、特定の値が書き込まれる2以上の数のレジスタと、
主プロセッサと副プロセッサとの間でデータを渡すため
のテーブルと、主プロセッサと副プロセッサからメモリ
へのアクセスを調停する手段とを具備するプログラマブ
ルコントローラである。
ラム及びI/Oデータを格納するメモリと、ユーザから
の起動により演算を開始する主プロセッサと、主プロセ
ッサからの割込みでシーケンス演算を実行する副プロセ
ッサと、から構成されるプログラマブルコントローラに
おいて、主プロセッサは、複数種類の特定の命令を実行
時、特定の値が書き込まれる2以上の数のレジスタと、
主プロセッサと副プロセッサとの間でデータを渡すため
のテーブルと、主プロセッサと副プロセッサからメモリ
へのアクセスを調停する手段とを具備するプログラマブ
ルコントローラである。
【0025】そして、本発明は、使用する言語がラダー
言語である主プロセッサ又はプログラマブルコントロー
ラである。
言語である主プロセッサ又はプログラマブルコントロー
ラである。
【0026】更に、本発明は、副プロセッサの数は1で
あり、割込みの数は2であり、そして、レジスタの数は
2である主プロセッサ又はプログラマブルコントローラ
である。
あり、割込みの数は2であり、そして、レジスタの数は
2である主プロセッサ又はプログラマブルコントローラ
である。
【0027】また、本発明は、使用する言語がフロー言
語である主プロセッサ又はプログラマブルコントローラ
である。
語である主プロセッサ又はプログラマブルコントローラ
である。
【0028】そして、本発明は、副プロセッサの数、割
込みの数及びレジスタの数は全て同じで、かつ、2以上
ある主プロセッサ又はプログラマブルコントローラであ
る。
込みの数及びレジスタの数は全て同じで、かつ、2以上
ある主プロセッサ又はプログラマブルコントローラであ
る。
【0029】更に、本発明は、主プロセッサが具備する
複数のレジスタに対し、副プロセッサがリード又はライ
ト可能である主プロセッサ又はプログラマブルコントロ
ーラである。
複数のレジスタに対し、副プロセッサがリード又はライ
ト可能である主プロセッサ又はプログラマブルコントロ
ーラである。
【0030】
【発明の実施の形態】本発明の発明の実施の形態を説明
する。
する。
【0031】以下、本発明の主プロセッサ及びプログラ
マブルコントローラについて、ラダー言語を使用する一
実施例を、図1〜図3を用いて説明する。
マブルコントローラについて、ラダー言語を使用する一
実施例を、図1〜図3を用いて説明する。
【0032】図1に2つのプロセッサを使用したプログ
ラマブルコントローラの構成を示す。
ラマブルコントローラの構成を示す。
【0033】本実施例のプログラマブルコントローラ
は、主プロセッサ1、副プロセッサ2、メモリ3、バス
4a、4bから構成されている。
は、主プロセッサ1、副プロセッサ2、メモリ3、バス
4a、4bから構成されている。
【0034】主プロセッサ1と副プロセッサ2は、バス
4aで接続されており、また、主プロセッサ1とメモリ
3は、バス4bで接続されている。
4aで接続されており、また、主プロセッサ1とメモリ
3は、バス4bで接続されている。
【0035】主プロセッサ1から副プロセッサ2へ2本
の割込み信号IRQ1、IRQ2が接続されている。
の割込み信号IRQ1、IRQ2が接続されている。
【0036】主プロセッサ1は、演算回路11、第1レ
ジスタ12a及び第2内部レジスタ12b、テーブル1
3、調停回路14等を有している。
ジスタ12a及び第2内部レジスタ12b、テーブル1
3、調停回路14等を有している。
【0037】第1内部レジスタ12aの出力はIRQ1
に、第2内部レジスタ12bの出力はIRQ2に接続さ
れている。
に、第2内部レジスタ12bの出力はIRQ2に接続さ
れている。
【0038】テーブル13は副プロセッサ2が応用命令
マクロを実行するにあたって必要なパラメータが格納さ
れる。
マクロを実行するにあたって必要なパラメータが格納さ
れる。
【0039】主プロセッサ1は、接点、コイルなどのラ
ダーの基本命令を実行し、第1レジスタ12a及び第2
レジスタ12bから出力される第1割込み信号IRQ1
及び第2割込み信号IRQ2で副プロセッサ2への割込
みを実行する。
ダーの基本命令を実行し、第1レジスタ12a及び第2
レジスタ12bから出力される第1割込み信号IRQ1
及び第2割込み信号IRQ2で副プロセッサ2への割込
みを実行する。
【0040】副プロセッサ2は、ラダーの応用命令を実
行する。
行する。
【0041】メモリ3は、ユーザプログラム、システム
プログラム、I/Oデータを格納する。
プログラム、I/Oデータを格納する。
【0042】プログラマブルコントローラの使用等につ
いて説明する。
いて説明する。
【0043】主プロセッサ1は基本命令を実行する。応
用命令マクロがあると、副プロセッサ2が実行するた
め、テーブル13には副プロセッサ2が実行するにあた
って必要なパラメータが格納され、副プロセッサ2は割
り込みがかかるとまずテーブル13を読み出し、その後
応用命令マクロを実行する。具体的には応用命令マクロ
の先頭アドレス、I/Oデータの先頭アドレス等が格納
される。
用命令マクロがあると、副プロセッサ2が実行するた
め、テーブル13には副プロセッサ2が実行するにあた
って必要なパラメータが格納され、副プロセッサ2は割
り込みがかかるとまずテーブル13を読み出し、その後
応用命令マクロを実行する。具体的には応用命令マクロ
の先頭アドレス、I/Oデータの先頭アドレス等が格納
される。
【0044】調停回路14は、主プロセッサ1からメモ
リ3へのアクセスと、副プロセッサ2からメモリ3への
アクセスを調停する。
リ3へのアクセスと、副プロセッサ2からメモリ3への
アクセスを調停する。
【0045】ここで、図2、図3、図8を用いてプロセ
ッサ間の処理の引き渡し方式を詳細に説明する。
ッサ間の処理の引き渡し方式を詳細に説明する。
【0046】図8は、ユーザが専用の入力装置を用いて
プログラミングしたラダープログラムの一部であり、こ
れは、従来のものと同じである。これを主プロセッサ1
が実行可能な命令フォーマットに変換し、図2に示すユ
ーザプログラムエリアに格納される。ここで、応用命令
1及び応用命令2は副ルーチンコールの形態に変換され
るが、応用命令1は演算結果をX1に反映させる命令で
あるため、CALLX(演算結果をX1に反映させる命
令)に変換し、応用命令2は演算結果をどこにも反映さ
せないためCALLY(演算結果をX1に反映させない
命令)に変換する。
プログラミングしたラダープログラムの一部であり、こ
れは、従来のものと同じである。これを主プロセッサ1
が実行可能な命令フォーマットに変換し、図2に示すユ
ーザプログラムエリアに格納される。ここで、応用命令
1及び応用命令2は副ルーチンコールの形態に変換され
るが、応用命令1は演算結果をX1に反映させる命令で
あるため、CALLX(演算結果をX1に反映させる命
令)に変換し、応用命令2は演算結果をどこにも反映さ
せないためCALLY(演算結果をX1に反映させない
命令)に変換する。
【0047】本実施例において、複数種類の特定の命令
は、CALLX(演算結果をX1に反映させる命令)と
CALLY(演算結果をX1に反映させない命令)の2
種類がある。
は、CALLX(演算結果をX1に反映させる命令)と
CALLY(演算結果をX1に反映させない命令)の2
種類がある。
【0048】主プロセッサ1は起動がかかるとユーザプ
ログラムの先頭から実行を開始する。ステップn、n+
1、n+2は接点及びコイル命令なので主プロセッサ1
が実行する。次にステップn+3はCALLX命令なの
で、第1内部レジスタ12aに“1”を書き込む。これ
により、次のサイクルから第1内部レジスタ12aの出
力が“1”となり、副プロセッサ2に割込み信号IRQ
1が出力され、主プロセッサ1はWAIT状態となる。
ログラムの先頭から実行を開始する。ステップn、n+
1、n+2は接点及びコイル命令なので主プロセッサ1
が実行する。次にステップn+3はCALLX命令なの
で、第1内部レジスタ12aに“1”を書き込む。これ
により、次のサイクルから第1内部レジスタ12aの出
力が“1”となり、副プロセッサ2に割込み信号IRQ
1が出力され、主プロセッサ1はWAIT状態となる。
【0049】副プロセッサ2はIRQ1により割り込み
がかかると、応用命令を実行するために必要なパラメー
タをテーブル13から読みだし、応用命令1マクロを実
行する。
がかかると、応用命令を実行するために必要なパラメー
タをテーブル13から読みだし、応用命令1マクロを実
行する。
【0050】前述のように、IRQ1が出力されている
間は主プロセッサ1の演算は停止しているため、副プロ
セッサ2からメモリ3へのアクセスは占有される。
間は主プロセッサ1の演算は停止しているため、副プロ
セッサ2からメモリ3へのアクセスは占有される。
【0051】副プロセッサ2が応用命令1マクロを実行
終了時、主プロセッサ1の1内部レジスタ12aに
“0”を書き込むことで主プロセッサ1のWAITは解
除され、次のステップを実行する。
終了時、主プロセッサ1の1内部レジスタ12aに
“0”を書き込むことで主プロセッサ1のWAITは解
除され、次のステップを実行する。
【0052】ステップn+4はCALLY命令なので、
命令実行時に第2内部レジスタ12bに“1”を書き込
む。これにより、次のサイクルから第2内部レジスタ1
2bの出力が“1”となり、副プロセッサ2に割り込み
信号IRQ2が出力され、主プロセッサ1はWAIT状
態となる。
命令実行時に第2内部レジスタ12bに“1”を書き込
む。これにより、次のサイクルから第2内部レジスタ1
2bの出力が“1”となり、副プロセッサ2に割り込み
信号IRQ2が出力され、主プロセッサ1はWAIT状
態となる。
【0053】一方、副プロセッサ2はIRQ2により割
り込みがかかると、最初に主プロセッサ1の第2内部レ
ジスタ12bに“0”を書き込み、WAITを解除す
る。その後IRQ1による割り込み処理と同様にテーブ
ル13を読み出し、応用命令2マクロを実行する。
り込みがかかると、最初に主プロセッサ1の第2内部レ
ジスタ12bに“0”を書き込み、WAITを解除す
る。その後IRQ1による割り込み処理と同様にテーブ
ル13を読み出し、応用命令2マクロを実行する。
【0054】ここで、WAITが解除されステップn+
5以降を実行する主プロセッサ1と、応用命令2マクロ
を実行する副プロセッサ2とでメモリ3に対するアクセ
スの競合が発生するが、これは調停回路14でしかるべ
き手段により調停される。
5以降を実行する主プロセッサ1と、応用命令2マクロ
を実行する副プロセッサ2とでメモリ3に対するアクセ
スの競合が発生するが、これは調停回路14でしかるべ
き手段により調停される。
【0055】以上、本実施例によれば、副プロセッサ2
が処理する応用命令マクロの処理結果を主プロセッサ1
に反映する必要がない場合、主プロセッサ1と副プロセ
ッサ2が並列に動作するため、ユーザプログラム全体の
処理時間を短縮することが可能となる。
が処理する応用命令マクロの処理結果を主プロセッサ1
に反映する必要がない場合、主プロセッサ1と副プロセ
ッサ2が並列に動作するため、ユーザプログラム全体の
処理時間を短縮することが可能となる。
【0056】なお、主プロセッサ1から出力する割り込
み信号を1本にし、第1内部レジスタ12aと第2内部
レジスタ12bの論理和を出力し、副プロセッサ2が割
り込み要因を解析する方法で処理の引き渡し方式を決定
することも可能である。
み信号を1本にし、第1内部レジスタ12aと第2内部
レジスタ12bの論理和を出力し、副プロセッサ2が割
り込み要因を解析する方法で処理の引き渡し方式を決定
することも可能である。
【0057】また、第1レジスタ12a及び第2内部レ
ジスタ12bは割り込み信号として出力せず、副プロセ
ッサ2がこれらのレジスタを常に監視して処理の引き渡
し要求を認識することも可能である。
ジスタ12bは割り込み信号として出力せず、副プロセ
ッサ2がこれらのレジスタを常に監視して処理の引き渡
し要求を認識することも可能である。
【0058】次に本発明の主プロセッサ及びプログラマ
ブルコントローラの第2の実施例について、フロー言語
を使用する例を図4〜図6を用いて説明する。
ブルコントローラの第2の実施例について、フロー言語
を使用する例を図4〜図6を用いて説明する。
【0059】図4に主プロセッサと2つの副プロセッサ
を使用したプログラマブルコントローラの構成を示す。
を使用したプログラマブルコントローラの構成を示す。
【0060】プログラマブルコントローラは、主プロセ
ッサ1、第1副プロセッサ2a及び第2副プロセッサ2
b、メモリ3、バス4a、4b、4c等から構成されて
いる。
ッサ1、第1副プロセッサ2a及び第2副プロセッサ2
b、メモリ3、バス4a、4b、4c等から構成されて
いる。
【0061】主プロセッサ1と第1副プロセッサ2a及
び第2副プロセッサ2bはバス4a、4bで接続され、
主プロセッサ1とメモリ3とはバス4cで接続される。
び第2副プロセッサ2bはバス4a、4bで接続され、
主プロセッサ1とメモリ3とはバス4cで接続される。
【0062】IRQ1は第1副プロセッサ2aに、IR
Q2は第2副プロセッサ2bに、それぞれ接続される。
Q2は第2副プロセッサ2bに、それぞれ接続される。
【0063】図5にプログラマブルコントローラで実行
可能なフロー言語の概略を示す。ここで、処理2(処理
3)と処理4(処理5)と処理6(処理7)とは並列に
実行可能である。したがって、このフロー言語を各プロ
セッサが実行可能な命令形態に変換しユーザプログラム
に格納する際に、処理2と処理3、処理4と処理5、処
理6と処理7をそれぞれのプロセッサにスケージューリ
ングすることが可能となる。
可能なフロー言語の概略を示す。ここで、処理2(処理
3)と処理4(処理5)と処理6(処理7)とは並列に
実行可能である。したがって、このフロー言語を各プロ
セッサが実行可能な命令形態に変換しユーザプログラム
に格納する際に、処理2と処理3、処理4と処理5、処
理6と処理7をそれぞれのプロセッサにスケージューリ
ングすることが可能となる。
【0064】フロー言語の処理1、処理6、処理7、処
理8を主プロセッサ1、処理2、処理3を第1副プロセ
ッサ2a、処理4、処理5を第2副プロセッサ2bが実
行するようにスケジューリングされ、メモリ3内のユー
ザプログラムエリアに格納されたユーザプログラムの概
略を図6に示す。
理8を主プロセッサ1、処理2、処理3を第1副プロセ
ッサ2a、処理4、処理5を第2副プロセッサ2bが実
行するようにスケジューリングされ、メモリ3内のユー
ザプログラムエリアに格納されたユーザプログラムの概
略を図6に示す。
【0065】ユーザからの起動がかかると、主プロセッ
サ1はユーザプログラムの先頭から実行を開始し、まず
処理1を実行する。次に処理2、処理4、処理6を並列
に実行させるため、第1副プロセッサ2a及び第2副プ
ロセッサ2bに処理を渡す必要がある。ここでは、CA
LLX命令(第1副プロセッサ2aに対する命令)を実
行するため第1内部レジスタ12aに“1”を書き込み
IRQ1を出力し第1副プロセッサ2aに処理2及び処
理3の実行を任せる。第1副プロセッサ2aは割り込み
を受け付けると、まず第1内部レジスタ12aに“0”
を書き込み、主プロセッサ1のWEITを解除し、処理
2及び処理3を実行する。
サ1はユーザプログラムの先頭から実行を開始し、まず
処理1を実行する。次に処理2、処理4、処理6を並列
に実行させるため、第1副プロセッサ2a及び第2副プ
ロセッサ2bに処理を渡す必要がある。ここでは、CA
LLX命令(第1副プロセッサ2aに対する命令)を実
行するため第1内部レジスタ12aに“1”を書き込み
IRQ1を出力し第1副プロセッサ2aに処理2及び処
理3の実行を任せる。第1副プロセッサ2aは割り込み
を受け付けると、まず第1内部レジスタ12aに“0”
を書き込み、主プロセッサ1のWEITを解除し、処理
2及び処理3を実行する。
【0066】主プロセッサ1はWAITが解除される
と、CALLY命令(第2副プロセッサ2bに対する命
令)を実行し、第2内部レジスタ12bに“1”が書き
込みIRQ2を出力する。
と、CALLY命令(第2副プロセッサ2bに対する命
令)を実行し、第2内部レジスタ12bに“1”が書き
込みIRQ2を出力する。
【0067】本実施例において、複数種類の特定の命令
は、CALLX命令(第1副プロセッサ2aに対する命
令)とCALLY命令(第2副プロセッサ2bに対する
命令)とがあり、一般に、特定の命令の種類は、副プロ
セッサ2a、2b、・・・の数だけある。
は、CALLX命令(第1副プロセッサ2aに対する命
令)とCALLY命令(第2副プロセッサ2bに対する
命令)とがあり、一般に、特定の命令の種類は、副プロ
セッサ2a、2b、・・・の数だけある。
【0068】第2副プロセッサ2bは割り込みを受け付
けると、まず第2内部レジスタ12bに“0”を書き込
み、主プロセッサ1のWAITを解除し、処理4及び処
理5を実行する。
けると、まず第2内部レジスタ12bに“0”を書き込
み、主プロセッサ1のWAITを解除し、処理4及び処
理5を実行する。
【0069】主プロセッサ1はWAITが解除されると
処理6及び処理7を実行する。その後、同期処理にて第
1副プロセッサ2a及び第2副プロセッサ2bがそれぞ
れの処理を実行完了するまで待機し、終了後処理8を実
行する。
処理6及び処理7を実行する。その後、同期処理にて第
1副プロセッサ2a及び第2副プロセッサ2bがそれぞ
れの処理を実行完了するまで待機し、終了後処理8を実
行する。
【0070】以上、本実施例によれば、フロー言語式の
ユーザプログラムを各プロセッサに並列に実行可能な処
理単位であらかじめスケジューリングして動作するた
め、全体の処理時間の短縮が図れる。ただし、特に明記
しなかったが、第1副プロセッサ2aと第2副プロセッ
サ2bのバス4aへのアクセス競合が発生した場合の調
停は、第1副プロセッサ2a及び第2副プロセッサ2b
間で行えばよい。
ユーザプログラムを各プロセッサに並列に実行可能な処
理単位であらかじめスケジューリングして動作するた
め、全体の処理時間の短縮が図れる。ただし、特に明記
しなかったが、第1副プロセッサ2aと第2副プロセッ
サ2bのバス4aへのアクセス競合が発生した場合の調
停は、第1副プロセッサ2a及び第2副プロセッサ2b
間で行えばよい。
【0071】
【発明の効果】本発明によれば、ラダー言語及びフロー
言語を使用することができ、そして、複数のプロセッサ
でシーケンス演算を行う場合、並列に各プロセッサが動
作可能となるため、ユーザプログラムの全体の実行時間
短縮が図れる。
言語を使用することができ、そして、複数のプロセッサ
でシーケンス演算を行う場合、並列に各プロセッサが動
作可能となるため、ユーザプログラムの全体の実行時間
短縮が図れる。
【図1】本発明の第1の実施例の説明図。
【図2】本発明で使用するラダー言語変換後プログラム
概略の一例の説明図。
概略の一例の説明図。
【図3】本発明の動作タイミングの一例の説明図。
【図4】本発明の第2の実施例の説明図。
【図5】本発明で使用するフロー言語によるプログラム
の一例の説明図例。
の一例の説明図例。
【図6】本発明で使用するフロー言語変換後プログラム
概略の一例の説明図。
概略の一例の説明図。
【図7】従来方式の構成の説明図。
【図8】ラダー言語によるプログラムの一例。
【図9】従来方式ラダー言語変換後プログラム概略の説
明図。
明図。
【図10】従来方式動作タイミングの説明図。
1 主プロセッサ 11 演算回路 12、12a、12b 内部レジスタ 13 テーブル 14 調停回路 2、2a、2b 副プロセッサ 3 メモリ 4a、4b、4c バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小倉 真 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内
Claims (7)
- 【請求項1】 ユーザが作成したプログラム及びI/O
データを格納するメモリと、ユーザからの起動により演
算を開始する主プロセッサと、主プロセッサからの割込
みでシーケンス演算を実行する副プロセッサと、から構
成されるプログラマブルコントローラに使用される主プ
ロセッサにおいて、 複数種類の特定の命令を実行時、特定の値が書き込まれ
る2以上の数のレジスタと、主プロセッサと副プロセッ
サとの間でデータを渡すためのテーブルと、主プロセッ
サと副プロセッサからメモリへのアクセスを調停する手
段とを具備することを特徴とするプログラマブルコント
ローラ用主プロセッサ。 - 【請求項2】 ユーザが作成したプログラム及びI/O
データを格納するメモリと、ユーザからの起動により演
算を開始する主プロセッサと、主プロセッサからの割込
みでシーケンス演算を実行する副プロセッサと、から構
成されるプログラマブルコントローラにおいて、 主プロセッサは、複数種類の特定の命令を実行時、特定
の値が書き込まれる2以上の数のレジスタと、主プロセ
ッサと副プロセッサとの間でデータを渡すためのテーブ
ルと、主プロセッサと副プロセッサからメモリへのアク
セスを調停する手段とを具備することを特徴とするプロ
グラマブルコントローラ。 - 【請求項3】 請求項1記載の主プロセッサ又は請求項
2記載のプログラマブルコントローラにおいて、 使用する言語がラダー言語であることを特徴とする主プ
ロセッサ又はプログラマブルコントローラ。 - 【請求項4】 請求項1もしくは3に記載の主プロセッ
サ又は請求項2もしくは3に記載のプログラマブルコン
トローラにおいて、 副プロセッサの数は1であり、割込みの数は2であり、
そして、レジスタの数は2であることを特徴とする主プ
ロセッサ又はプログラマブルコントローラ。 - 【請求項5】 請求項1記載の主プロセッサ又は請求項
2記載のプログラマブルコントローラにおいて、 使用する言語がフロー言語であることを特徴とする主プ
ロセッサ又はプログラマブルコントローラ。 - 【請求項6】 請求項1もしくは5記載の主プロセッサ
又は請求項2もしくは5記載のプログラマブルコントロ
ーラにおいて、 副プロセッサの数、割込みの数及びレジスタの数は全て
同じで、かつ、2以上あることを特徴とする主プロセッ
サ又はプログラマブルコントローラ。 - 【請求項7】 請求項1〜6のいずれか1項に記載の主
プロセッサ又はプログラマブルコントローラにおいて、 主プロセッサが具備する複数のレジスタに対し、副プロ
セッサがリード又はライト可能であることを特徴とする
主プロセッサ又はプログラマブルコントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9118067A JPH10307607A (ja) | 1997-05-08 | 1997-05-08 | 主プロセッサ及びプログラマブルコントローラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9118067A JPH10307607A (ja) | 1997-05-08 | 1997-05-08 | 主プロセッサ及びプログラマブルコントローラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10307607A true JPH10307607A (ja) | 1998-11-17 |
Family
ID=14727197
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9118067A Pending JPH10307607A (ja) | 1997-05-08 | 1997-05-08 | 主プロセッサ及びプログラマブルコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10307607A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016110220A (ja) * | 2014-12-02 | 2016-06-20 | 株式会社キーエンス | プログラマブル・ロジック・コントローラおよびその制御方法 |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS54114687A (en) * | 1978-02-27 | 1979-09-06 | Toyoda Mach Works Ltd | Sequence controller |
| JPS63157204A (ja) * | 1986-12-22 | 1988-06-30 | Omron Tateisi Electronics Co | プログラマブル・コントロ−ラ |
| JPH025104A (ja) * | 1988-06-23 | 1990-01-10 | Fanuc Ltd | 演算処理装置 |
| JPH03282904A (ja) * | 1990-03-30 | 1991-12-13 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
| JPH03288906A (ja) * | 1990-04-05 | 1991-12-19 | Fanuc Ltd | Pcの命令実行方式 |
| JPH04363704A (ja) * | 1991-02-25 | 1992-12-16 | Matsushita Electric Works Ltd | プログラマブルコントローラの演算プロセッサ |
| JPH0573112A (ja) * | 1990-08-31 | 1993-03-26 | Allen Bradley Co Inc | プログラマブル制御装置用プロセツサ |
| JPH07248807A (ja) * | 1994-03-11 | 1995-09-26 | Toshiba Corp | プログラマブルコントローラ |
| JPH08249022A (ja) * | 1995-03-13 | 1996-09-27 | Omron Corp | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ |
| JPH08249289A (ja) * | 1995-03-10 | 1996-09-27 | Omron Corp | メモリ制御装置およびその制御方法 |
-
1997
- 1997-05-08 JP JP9118067A patent/JPH10307607A/ja active Pending
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS54114687A (en) * | 1978-02-27 | 1979-09-06 | Toyoda Mach Works Ltd | Sequence controller |
| JPS63157204A (ja) * | 1986-12-22 | 1988-06-30 | Omron Tateisi Electronics Co | プログラマブル・コントロ−ラ |
| JPH025104A (ja) * | 1988-06-23 | 1990-01-10 | Fanuc Ltd | 演算処理装置 |
| JPH03282904A (ja) * | 1990-03-30 | 1991-12-13 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
| JPH03288906A (ja) * | 1990-04-05 | 1991-12-19 | Fanuc Ltd | Pcの命令実行方式 |
| JPH0573112A (ja) * | 1990-08-31 | 1993-03-26 | Allen Bradley Co Inc | プログラマブル制御装置用プロセツサ |
| JPH04363704A (ja) * | 1991-02-25 | 1992-12-16 | Matsushita Electric Works Ltd | プログラマブルコントローラの演算プロセッサ |
| JPH07248807A (ja) * | 1994-03-11 | 1995-09-26 | Toshiba Corp | プログラマブルコントローラ |
| JPH08249289A (ja) * | 1995-03-10 | 1996-09-27 | Omron Corp | メモリ制御装置およびその制御方法 |
| JPH08249022A (ja) * | 1995-03-13 | 1996-09-27 | Omron Corp | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016110220A (ja) * | 2014-12-02 | 2016-06-20 | 株式会社キーエンス | プログラマブル・ロジック・コントローラおよびその制御方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0376496B2 (ja) | ||
| CN115061803A (zh) | 一种多核处理系统及其任务调度方法、芯片、存储介质 | |
| JPH10307607A (ja) | 主プロセッサ及びプログラマブルコントローラ | |
| JPH064314A (ja) | タスク間同期通信装置 | |
| JP2018106583A (ja) | 半導体装置 | |
| JPH06103223A (ja) | データ処理装置 | |
| JP2002312005A (ja) | プログラマブルコントローラ | |
| JPH06175911A (ja) | メモリ制御方式 | |
| CN115422100B (zh) | 直接内存存取控制装置、数据传输方法和数据传输系统 | |
| CN111143141B (zh) | 一种状态机设置方法及系统 | |
| JPH0281254A (ja) | マルチプロセッサ制御装置 | |
| JP3943302B2 (ja) | プログラマブルコントローラ | |
| JPH0887481A (ja) | マルチプロセッサボードの立ち上げ方法 | |
| JPH08115213A (ja) | ディジタル信号処理装置及びそのダイレクト・メモリ・アクセス制御方法 | |
| JPH0525538U (ja) | マルチプロセツサ装置 | |
| JP2006023808A (ja) | データ転送装置及びデータ転送方法 | |
| JPH1195812A (ja) | プログラマブルコントローラ | |
| JPH04149642A (ja) | 情報処理装置 | |
| JP2000148712A (ja) | マルチプロセッサシステム | |
| JPH02146660A (ja) | 情報処理装置 | |
| JPH05241986A (ja) | 入出力命令リトライ方式 | |
| JPH0991247A (ja) | バス調停装置 | |
| JP2012053817A (ja) | マルチプロセッサシステムと制御方法 | |
| JPS62296236A (ja) | マイクロプロセツサの割り込み処理装置 | |
| JPH04311225A (ja) | マイクロプロセッサ命令実行方式 |