JPH10307612A - 複数のプロセッサを有するプログラマブルコントローラ - Google Patents

複数のプロセッサを有するプログラマブルコントローラ

Info

Publication number
JPH10307612A
JPH10307612A JP11986197A JP11986197A JPH10307612A JP H10307612 A JPH10307612 A JP H10307612A JP 11986197 A JP11986197 A JP 11986197A JP 11986197 A JP11986197 A JP 11986197A JP H10307612 A JPH10307612 A JP H10307612A
Authority
JP
Japan
Prior art keywords
processor
program
main processor
sub
storage unit
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
Application number
JP11986197A
Other languages
English (en)
Inventor
Naonori Kikuchi
直典 菊池
Mitsuru Soga
満 曽我
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 JP11986197A priority Critical patent/JPH10307612A/ja
Publication of JPH10307612A publication Critical patent/JPH10307612A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】主、副プロセッサの命令を混在形態とし処理が
短いPCを提供する。 【解決手段】 ユーザプログラムを主プロセッサ1と副
プロセッサ2の処理命令を混在形態に演算回路30でコ
ンパイルし、格納する記憶部6Bと、この記憶部6Bに
格納されたプログラムを主プロセッサ1及び副プロセッ
サ2が共に同時に演算させ、主プロセッサ1が演算中は
副プロセッサ2に対してNOP命令を供給し、主プロセ
ッサ1が副プロセッサ2が処理する命令をフェッチした
場合にはWAIT状態となり、この状態で副プロセッサ
2はシーケンスプログラム記憶部6Bのプログラムを直
接に読み出し実行するようにしたものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
を有するプログラマブルコントローラ(以下、PCとい
う)に係り、シーケンス演算を行うPCにおいて複数の
プロセッサ間の処理の引き渡し方式に関するものであ
る。
【0002】
【従来の技術】従来技術では、詳細な説明を省略する
が、PCにおいては、主プロセッサ一台を用いるシステ
ムが採用されたが、処理の間に周辺機器との信号交換を
しなければならないので、処理速度に当然問題が生じ
た。そこで、主プロセッサと副プロセッサの複数方式が
採用されたが、主プロセッサと副プロセッサ間の処理の
引き渡しについて、種々の問題を生じ、多くの提案がな
されていた。
【0003】ここで、従来技術における複数のプロセッ
サを有し、シーケンス演算に用いられる応用命令の多い
PCでのシーケンスプログラムについて説明する。図5
は従来技術における複数のプロセッサを有するPCのブ
ロック図である。図示する如く、主プロセッサ1と副プ
ロセッサ2は、バス40で接続されている。副プロセッ
サ2のシステムプログラムは記憶部3、ユーザプログラ
ムは記憶部6A、I/Oデータは記憶部7にそれぞれ格
納される。
【0004】前記記憶部3はバス40、記憶部6Aおよ
び記憶部7はバス43により、それぞれ主プロセッサ1
と接続されている。前記主プロセッサ1と前記副プロセ
ッサ2の演算分担は、ここでは接点、コイル等のビット
演算の基本命令を主プロセッサ、その他の応用命令、算
術命令を副プロセッサが行うこととなっている。
【0005】図6ないし図8を参照して、従来の図5の
PCにおける処理の複数プロセッサの引き渡し方式を説
明する。ここで、用いられる略称命令について説明す
る。JSR:Jump Sub Routine,LB
L:ラベル,JMP:Jump,NOP:No Ope
rationである。図6は、ユーザが周辺装置を用い
て作成したラダープログラムの部分図、図7は従来方式
におけるユーザプログラム図、図8は従来方式における
システムプログラム図である。
【0006】まず、図6に示すユーザが周辺装置を用い
た作成したラダープログラムを説明する。ステッブnに
おいて、接点X0が閉じると、ステッブn+1において
Y0が出力される。ステッブn+1においてY0が出力
されると、ステッブn+2で接点Y0が閉じる。ステッ
ブn+2で接点Y0が閉じると、ステッブn+3で応用
命令が出力される。この場合の応用命令はCALL L
BL1である。次いで、ステッブn+4で接点X1が閉
じ、ステッブn+5でY1が出力される。
【0007】このラダープログラムは、このままでは主
プロセッサ1に実行させることができないので、図7に
示されるような主プロセッサ1が実行可能な命令フォー
マットに変換されて記憶部6Aに格納される。図7は、
図示太矢印に示す如く、ステッブnからステッブn+1
までの接点X0の閉からまでY1の出力まで行われるよ
うになっている。ラダープログラム内の応用命令は、一
般的にサブルーチンの形態をとり、実際の処理において
は応用命令マクロとしてシステムプログラム記憶部3に
格納されている。
【0008】図8に示されるシステムプログラムについ
て説明する。図示する如く、主プロセッサ1内の仮想メ
モリ14に記憶されているシステムプログラムエリアに
は、システムプログラムのシーケンス演算に利用される
部分を記述したものであり、すなわち、ジャンプ命令が
格納されている。ここで、主プロセッサ1が起動される
と、図7のユーザプログラムのステツプnから実行が開
始される。ステツプn+3で応用命令CALL LBL
1を実行する。前記CALLの内容をエントリアドレ
ス、LBL1が表しているが、ジヤンプ先アドレスがす
りかわり、WAIT状態となる。
【0009】一方、副プロセッサ2は、主プロセッサ1
内の仮想メモリ14に割付けられた特定アドレスのLB
L命令、JMP LBLの命令を実行する。すなわち、
バス40を介してアクセスすることにより、アドレスの
デコード部13からのデコード結果により、データバス
セレクタ部12により仮想メモリ14が選択され、仮想
メモリ14内のJMP LBLの命令を実行することに
より、ループ処理が行われている。
【0010】前記の如く、主プロセッサ1がWAIT状
態となると、フェッチ信号を出力する。このフェッチ信
号は主プロセッサ1内の演算回路30より仮想メモリ1
4におくられ、JMP LBLがLBL1に代わる。前
記LBL1になると、主プロセッサ1内の仮想メモリ1
4からシステムプログラムエリア内のジャンプテーブル
へのジャンプし、JMP LBLBとなる。
【0011】さらに当該ジャンプテーブルに格納されて
いるジャンプ命令を実行することにより、目的とする応
用命令マクロの先頭へジャンプし、応用マクロの実行を
開始する。応用マクロ命令が完了すると、再びJMP
LBLに戻り、副プロセッサ2のループ処理が行われ
る。前記応用命令マクロの実行終了時は、主プロセッサ
1の仮想メモリ14に記憶されているジャンプ命令を実
行されると、前記主プロセッサ1のWAIT状態が解除
され、フェッチ信号が出力しなくなり、シーケンスプロ
グラムの次の命令実行を開始する。この動作をシーケン
スプログラムの最後まで、図示ではn+5まで実行して
1スキャンニングが終了する。
【0012】
【発明が解決しようとする課題】複数のプロセッサを有
するPCについては、上記説明した如く、副プロセッサ
が応用命令マクロを実行するまでに、主プロセッサの仮
想メモリからシステムプログラムエリア内のジャンプテ
ーブルへのジャンプ命令およびシステムプログラムエリ
ア内のジャンプテーブルから応用命令マクロの先頭への
ジャンプ命令の最低2回実行する必要がある。そのた
め、応用命令処理に移行するためのオーバヘッド分が大
きくなる。前記応用命令が多数存在するシーケンスプロ
グラムではオーバヘッド分だけでも数msの時間を要す
ることがある。そのため、PCのユーザプログラム全体
の実行時間が長くなってしまうという問題点がある。
【0013】本発明は、かかる従来の問題点を解決する
ためになされたもので、複数のプロセッサが実装された
PCにおいて、シーケンスプログラム記憶部に主プロセ
ッサおよび副プロセッサ両方の実行命令が混在した形態
で格納されることにより、主プロセッサから副プロセッ
サへの演算引き渡し時間を短縮し、さらに、高速に応用
命令を処理するPCを提供することをその目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係る複数のプロセッサを有するプログラマ
ブルコントローラの構成は、外部機器より信号を取り込
む入力部と、外部負荷を駆動する出力部と、周辺装置を
接続するためのI/F部と、当該周辺装置で作成された
ユーザプログラムを記憶するユーザプログラム記憶部
と、当該記憶部に記憶された制御プログラムに従い、演
算を行う中央演算処理部と、当該中央演算処理部の演算
結果を記憶するデータ記憶部と、上記各部を制御するシ
ステムプログラムを記憶するシステムプログラム記憶部
で構成され、前記中央演算処理部内にシーケンスプログ
ラムを実行する主プロセッサと、当該主プロセッサの実
行しない命令を処理する副プロセッサとを具備したプロ
グラマブルコントローラにおいて、前記ユーザプログラ
ム記憶部に格納されたプログラムを主プロセッサおよび
副プロセッサの実行命令を混在形態にコンパイルするコ
ンパイル部と、前記コンパイルした混在形態のプログラ
ムを格納するシーケンスプログラム記憶部を具備したこ
とを特徴とするものである。
【0015】前記記載のプログラマブルコントローラに
おいて、前記主プロセッサと副プロセッサが前記シーケ
ンスプログラム記憶部上を同時に演算開始し、前記主プ
ロセッサが演算処理中には、当該主プロセッサが当該副
プロセッサへNOP命令を供給し、前記NOP命令を前
記副プロセッサが実行し続けるようにし、前記副プロセ
ッサの処理命令を前記主プロセッサがフェッチした場合
は当該主プロセッサの演算を停止し、前記副プロセッサ
が前記主プロセッサ内のプログラムカウンタの停止アド
レスと同一アドレスのプログラムをシーケンスプログラ
ム記憶部から直接読み出せるようにしたことを特徴とす
るものである。
【0016】
【発明の実施の形態】以下、本発明に係る複数のプロセ
ッサを有するPCの一実施形態を図1ないし図4を参照
して説明する。図1は、本発明の一実施形態に係るPC
の構成図である。図1に示す如く、PC100は、論理
処理、各部の制御を行う中央演算処理部50と、当該中
央演算処理部50の制御する内容・手順を記憶したシス
テムプログラム記憶部3と、ユーザプログラムを格納し
書き換え可能なユーザプログラム記憶部6Aと、前記中
央演算処理部50の演算結果等を記憶する書き換え可能
なデータ記憶部7と、外部機器より信号を取り込む入力
部60と、外部負荷を駆動する出力部70と、上記ユー
ザプログラムをコンパイルして作成したシーケンスプロ
グラムを記憶するシーケンスプログラム記憶部6Bとを
具備している。
【0017】ユーザが周辺装置90で作成したラダー形
式のユーザプログラムを周辺装置I/F部80を介して
内部に取り込み、前記ユーザプログラム記憶部6Aに格
納する。前記において、実際にシーケンス演算を実行す
る場合、本実施形態では、前記ユーザプログラムを中央
演算処理部50の処理によってコンパイルして作成した
シーケンスプログラムをシーケンスプログラム記憶部6
Bに格納し、当該格納されたシーケンスプログラムを実
行することにより、シーケンス演算が制御されることに
なる。なお、前記中央演算処理部50の処理によるコン
パイルを周辺機器で実行させても差し支えない。
【0018】図2は、図1の中央演算処理部のシーケン
ス演算部およびその周辺部の構成図である。接点、コイ
ルなどのラダーの基本命令を実行する主プロセッサ1
と、ラダーの応用命令、算術命令を実行する副プロセッ
サ2と、ユーザプログラムを格納するユーザプログラム
記憶部6Aと、ユーザプログラムを主プロセッサ1およ
び副プロセッサ2の処理命令を混在した形態にコンパイ
ルされたシーケンスプログラムを格納し且つ書き換え可
能なシーケンスプログラム記憶部6Bと、I/Oデータ
を格納するデータ記憶部7とで構成され、副プロセッサ
2はバス40で、ユーザプログラム記憶部6Aおよびシ
ーケンスプログラム記憶部6Bはバス41で、データ記
憶部7はバス42で、それぞれ主プロセッサ1と接続さ
れている。
【0019】上記実施の形態では、主プロセッサ1に副
プロセッサ2とのI/Fとして、副プロセッサI/F部
10が内蔵されている。前記副プロセッサI/F部10
には、副プロセッサ2が出力したバス40上のアドレス
を、上記シーケンスプログラム記憶部6Bのバス41上
で伝達するために変換するアドレス変換部11と、主プ
ロセッサ1が演算中には副プロセッサ2に対してNOP
(Not Operation)命令を供給し、もしく
は主プロセッサ1がWAIT状態ではシーケンスプログ
ラム記憶部6Bからのプログラムデータをそのまま供給
するデータセレクタ12が内蔵されている。
【0020】前記主プロセッサ1には制御部20があ
り、当該制御部20にシーケンスプログラム記憶部6B
内のプログラムアドレスを管理するためのプログラムカ
ウンタ21と、上記シーケンスプログラム記憶部6Bか
ら供給されるシーケンス命令をフェッチする命令フェッ
チ部22と、上記プログラムカウンタ21の内容と上記
副プロセッサI/F部10内のアドレス変換部11の内
容を比較する比較部23と、演算回路部30とが内蔵さ
れている。
【0021】図1に示すPCおよび図2に示す中央演算
処理部のシーケンス演算部を参照して図3の複数のプロ
セッサ間の処理の引き渡し方式を説明する。図3は、図
1のPCにおける複数のプロセッサ間処理の引き渡し方
式を説明図である。図1、2、3において、図示する如
く、主プロセッサ1および副プロセッサ2の処理命令を
混在した形態にコンパイルされたシーケンスプログラム
をシーケンスプログラム記憶部6Bのシステムプログラ
ムエリアに格納されている。主プロセッサ1と副プロセ
ッサ2は、シーケンスプログラム記憶部6B上のシケン
スプログラムエリア上の同一アドレスのプログラムを同
時に演算処理が行われる。このとき、主プロセッサ1が
フェッチした命令が副プロセッサ2の処理命令でなけれ
ば、データバスセレクタ12に対して信号46をイネー
ブルとする。これによりデータバスセレクタ12は、副
プロセッサ2に対してNOP命令を供給し、主プロセッ
サ1の演算中では、副プロセッサ2は、NOP処理を実
行し続ける。
【0022】前記主プロセッサ1が前記副プロセッサ2
の処理命令をフェッチした場合、命令フェッチ部22か
らの制御信号46が演算回路部30に対してディスエー
ブルとし、演算回路部30をWAIT状態とすると共
に、比較部23に対してはイネーブルとなり、プログラ
ムカウンタ21のアドレスとアドレス変換部11のアド
レスとの比較が開始される。
【0023】この時、比較結果、すなわちプログラムカ
ウンタ21のアドレスとアドレス変換部11のアドレス
とが一致したならば、制御部20からの制御信号47を
ディスエーブルとする。これにより副プロセッサ2に
は、NOP命令でなく、シーケンスプログラムが直ちに
読み出せるため、シーケンスプログラムにあるJSR、
LBLBとなり、すなわちジャンプサブルーチン命令を
実行し、LBLBの応用命令マクロの先頭アドレスへジ
ャンプし、応用命令マクロを実行開始する。
【0024】しかし、プログラムカウンタ21のアドレ
スとアドレス変換部11のアドレスとが一致しなけれ
ば、NOP命令のみが供給される。前記副プロセッサ2
の応用命令マクロの実行が終了し、再度主プロセッサ1
に起動をかける場合は、副プロセッサ2がリターン命令
を実行して、副プロセッサ2にはNOP命令が出され、
主プロセッサ1のWAIT状態が解除され、次のシーケ
ンスプログラム命令のアドレスX1、Y1が実行され
る。
【0025】本発明の他の一実施形態について図4を参
照して説明する。図4は、本発明の他の一実施形態に係
るPCの構成図である。本実施の形態では、副プロセッ
サ2へNOP命令を供給するか、シーケンスプログラム
記憶部6Bのデータを供給するかを選択するデータバス
セレクタ12がシーケンスプログラム記憶部6Bのバス
41に対するI/F部15に内蔵されている。上記の構
成では、図1の実施形態とはことなり、バス調整方式が
容易となる点が本形態の特徴である。
【0026】
【発明の効果】以上、詳細に説明した如く、本発明の構
成によれば、複数のプロセッサでシーケンス演算を行う
場合、シーケンスプログラム記憶部に主プロセッサおよ
び副プロセッサ両方の実行命令が混在した形態で格納さ
せることにより、また副プロセッサのシステムプログラ
ム中の演算マクロをシーケンスプログラム記憶部に配置
することにより、主プロセッサから副プロセッサへの演
算引き渡し時間を短縮し、さらに、高速に応用命令を処
理することができ、ユーザプログラム全体の実行時間の
短縮が図れるPCを提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るPCの構成図であ
る。
【図2】図1の中央演算処理部のシーケンス演算部およ
びその周辺部の構成図である。
【図3】図1のPCにおける複数のプロセッサ間処理の
引き渡し方式を説明図である。
【図4】本発明の他の一実施形態に係るPCの構成図で
ある。
【図5】従来技術における複数のプロセッサを有するP
Cのブロック図である。
【図6】ユーザが周辺装置を用いて作成したラダープロ
グラムの部分図である。
【図7】従来方式におけるユーザプログラム図である。
【図8】従来方式におけるシステムプログラム図であ
る。
【符号の説明】
1…主プロセッサ、2…副プロセッサ、3…システムプ
ログラム記憶部、6A…ユーザプログラム記憶部、6B
…シーケンスプログラム記憶部、7…I/Oデータ記憶
部、10…副プロセッサI/F部、11…アドレス変換
部、12…データバスセレクタ部、13…アドレスデコ
ード部、14…仮想メモリ、15…プログラム記憶部I
/F部、20…制御部、21…プログラムカウンタ、2
2…命令フェッチ部、23…アドレス比較部、40,4
1,42,43…バス、46,47…制御信号、50…
中央演算処理部、60…入力部、70…出力部、80…
周辺装置I/F部、90…周辺装置、100…PC

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 外部機器より信号を取り込む入力部と、
    外部負荷を駆動する出力部と、周辺装置を接続するため
    のI/F部と、当該周辺装置で作成されたユーザプログ
    ラムを記憶するユーザプログラム記憶部と、当該記憶部
    に記憶された制御プログラムに従い、演算を行う中央演
    算処理部と、当該中央演算処理部の演算結果を記憶する
    データ記憶部と、上記各部を制御するシステムプログラ
    ムを記憶するシステムプログラム記憶部で構成され、前
    記中央演算処理部内にシーケンスプログラムを実行する
    主プロセッサと、当該主プロセッサの実行しない命令を
    処理する副プロセッサとを具備したプログラマブルコン
    トローラにおいて、 前記ユーザプログラム記憶部に格納されたプログラムを
    主プロセッサおよび副プロセッサの実行命令を混在形態
    にコンパイルするコンパイル部と、前記コンパイルした
    混在形態のプログラムを格納するシーケンスプログラム
    記憶部を具備したことを特徴とするプログラマブルコン
    トローラ。
  2. 【請求項2】 請求項1記載のプログラマブルコントロ
    ーラにおいて、 前記主プロセッサと副プロセッサが前記シーケンスプロ
    グラム記憶部上を同時に演算開始し、前記主プロセッサ
    が演算処理中には、当該主プロセッサが当該副プロセッ
    サへNOP命令を供給し、前記副プロセッサが前記NO
    P命令を実行し続けるようにし、前記副プロセッサの処
    理命令を前記主プロセッサがフェッチした場合は当該主
    プロセッサの演算を停止し、前記副プロセッサが前記主
    プロセッサ内のプログラムカウンタの停止アドレスと同
    一アドレスのプログラムをシーケンスプログラム記憶部
    から直接読み出せるようにしたことを特徴とするプログ
    ラマブルコントローラ。
JP11986197A 1997-05-09 1997-05-09 複数のプロセッサを有するプログラマブルコントローラ Pending JPH10307612A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11986197A JPH10307612A (ja) 1997-05-09 1997-05-09 複数のプロセッサを有するプログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11986197A JPH10307612A (ja) 1997-05-09 1997-05-09 複数のプロセッサを有するプログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JPH10307612A true JPH10307612A (ja) 1998-11-17

Family

ID=14772093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11986197A Pending JPH10307612A (ja) 1997-05-09 1997-05-09 複数のプロセッサを有するプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JPH10307612A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013245A1 (ja) * 2021-08-03 2023-02-09 株式会社日立産機システム サーボシステムおよびサーボシステムの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013245A1 (ja) * 2021-08-03 2023-02-09 株式会社日立産機システム サーボシステムおよびサーボシステムの制御方法

Similar Documents

Publication Publication Date Title
US4077060A (en) Asymmetrical multiprocessor system
JPS624726B2 (ja)
US5600807A (en) Programmable controller capable of updating a user program during operation by switching between user program memories
US6229543B1 (en) Microprocessor, and graphics processing apparatus and method using the same
JPH10307612A (ja) 複数のプロセッサを有するプログラマブルコントローラ
AU714669B2 (en) Peripheral device control
US5564057A (en) Microprocessor architecture which facilitates input/output utilizing pairs of registers which the same address
JP2002535749A (ja) 複数の命令ソースからの命令を実行するプロセッサおよび方法
JP2004348327A (ja) デジタル信号処理装置及びデジタル信号処理方法
KR100465610B1 (ko) 온-칩 프로그래밍 능력을 가지는 내장된 플래시 메모리를 구비한 마이크로컴퓨터 및 상기 내장된 플래시 메모리에 데이터를프로그램하는 방법
JPH04311225A (ja) マイクロプロセッサ命令実行方式
JP3097602B2 (ja) データ処理装置
JP2859048B2 (ja) マイクロコンピュータ
US6564303B1 (en) Dual port memory for digital signal processor
JP2000347931A (ja) キャッシュメモリおよびキャッシュメモリ制御方法
JPS6395503A (ja) プログラマブルコントロ−ラ
KR960010921B1 (ko) 데이타 프로세서에 있어서의 처리제어방법
JP2004199630A (ja) データ処理装置
JPH05313915A (ja) マイクロコンピュータ
JPS58178433A (ja) マルチブレクサチヤネル
JPS61101866A (ja) 二重化プロセツサにおける起動制御方式
JP2003015957A (ja) キャッシュメモリ制御システム
JPH07334215A (ja) プログラマブルコントローラのシーケンス制御方法
JPS6215645A (ja) 中央処理装置
JPH10105413A (ja) 割込処理システム