JP3582210B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP3582210B2 JP3582210B2 JP04923396A JP4923396A JP3582210B2 JP 3582210 B2 JP3582210 B2 JP 3582210B2 JP 04923396 A JP04923396 A JP 04923396A JP 4923396 A JP4923396 A JP 4923396A JP 3582210 B2 JP3582210 B2 JP 3582210B2
- Authority
- JP
- Japan
- Prior art keywords
- address space
- cpu
- ram
- execution
- code
- 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 - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
本発明は、プログラマブルコントローラに関するものである。
【0002】
【従来の技術】
従来、高速に演算することが可能なマシンコードのようなの実行コードにユーザーププログラムをコンパイルして実行するプログラマブルコントローラには、図6に示すように使用するCPUがアクセス可能なアドレス空間X内にシステムプログラム用ROM1や、システム実行時のシステムワーク用やユーザープログラム格納用のRAM2を固定的に配置するようにアドレスデコード回路を構成していた。
【0003】
【発明が解決しようとする課題】
上記のような構成では使用するCPUがアクセスできるアドレス空間X以上にROM1やRAM2の容量を拡張することができなかった。そのためより大きな容量のユーザープログラムを持つプログラマブルコントローラを開発することができなかった。
【0004】
一方CPUが実行可能な実行コードを格納するアドレス空間とは別にデータとしてアクセス可能なアドレス空間を持つことができるCPUが存在しているが、この場合もユーザープログラムの実行コード(マシンコード)を格納したRAMのアドレス空間をCPUが実行可能な実行コードを格納するアドレス空間に割り当てる必要があり、システムプログラムを格納したROMが占有するアドレス空間を、CPUが実行可能な実行コードを格納するアドレス空間から差し引いた空間がユーザープログラムに解放されるだけであるため、大きな容量のユーザープログラムを用いることや、逆に大きな容量のシステムプログラムを格納したROMを使用することができなかった。
【0005】
本発明は上記問題点に鑑みて為されたもので、その目的とするところはCPUが実行コードをアクセスすることができるアドレス空間を有効に使用でき、大きな容量のユーザープログラムを用いることが可能なプログラマブルコントローラを提供するにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために請求項1の発明では、CPUと、システムプログラム等の固定プログラムを格納したROMと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるRAMと、CPUからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、CPUが実行コードを読み出して実行することができるアドレス空間をROMに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりRAMにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にCPUはコンパイルされてCPUが高速で実行可能な実行コードとなったユーザープログラムを格納しているRAMのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたRAM上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がROMを選択するように設定し、この設定により選択されたROMの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行することを特徴とする。
【0007】
請求項2の発明では、請求項1記載の発明において、最初の実行スキャン時にRAM上のユーザープログラムのソースコードをCPUが実行可能な実行コードにコンパイルして、このコンパイル後CPUのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したRAMを選択してRAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定することを特徴とする。
【0008】
請求項3の発明では、請求項1記載の発明において、最初の実行スキャン時にCPUによりアドレスデコード手段に対する設定によりソースプログラムを格納しているRAMを選択し、RAMの特定アドレス空間に対応するアドレス空間においてソースプログラムをCPUが実行可能な実行コードにコンパイルして、このコンパイル後RAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定することを特徴とする。
【0009】
【発明の実施の形態】
以下、本発明を実施形態により説明する。
(実施形態1)
図1は本実施形態のプログラマブルコントローラ(以下PCと略する)の構成を示しており、CPU10と、コンパイル処理のプログラムや、通信処理のプログラムを含むシステムプログラム等のプログラムの実行コード(例えばマシンコード)を格納したROM11(勿論デバイスとしては複数使用してもよいが説明を簡単にするためにデバイスを一つとして図示している。)と、システムプログラムの実行時のワークアドレス空間や、ユーザープログラムのソースコード、更には該ソースコードをコンパイルして得られた実行コードを格納するアドレス空間が設けられるとともに、更にはデータの一時格納等に用いられるRAM12(勿論デバイスとしては複数使用してもよいが説明を簡単にするためにデバイスを一つとして図示している。)と、CPU10が実行コードをアクセスして実行することが可能なアドレス空間にアドレス空間を割り当てるメモリデバイスを選択するデータがCPU10により設定されるデバイス選択レジスタ13と、このデバイス選択レジスタ13に設定されたデータの内容に基づいて特定のアドレス空間のアドレスデータがCPU10より出力された時にセレクト信号S1 又はS2 を出力して当該特定アドレス空間にアドレスを割り当てるメモリデバイスとしてROM11又はRAM12の何れか一方を選択するアドレスデコード回路14とを備えている。ここでデバイス選択レジスタ13とアドレスデコード回路14とがアドレスデコード手段を構成する。なお図1中DBはデータバス、ABはアドレスバスを示す。
【0010】
ここで本実施形態のプログラマブルコントローラに用いるCPU10は図2に示すように実行コードをアクセスして実行できるアドレス空間X1 と、データとして独立してアクセスできるメモリアアドレス空間X2 とを夫々別個に持つことができるものを使用しており、実施形態ではアドレス空間X1 を占有する容量のROM11と、アドレス空間X2 を占有する容量のRAM12とを用いるとともに、アドレス空間X1 の一部をアドレスデコード手段によりROM11又はRAM12を選択して割り当てることができる特定アドレス空間X10とし、残りのアドレス空間をROM11が常時占有するアドレス空間X11としている。
【0011】
つまりCPU10がデバイス選択レジスタ13に”0”を設定すると、アドレスデコード回路14は特定アドレス空間X10がアクセスされる際にROM11に割り当てる。つまりこの場合ROM11全体でアドレス空間X1 を占有することになる。CPU10がデバイス選択レジスタ13に”1”を設定すると、アドレスデコード回路14は特定アドレス空間X10がアクセスされるとその特定アドレス空間X10にRAM12の対応するアドレス空間つまり、コンパイル用アドレス空間を写像する。
【0012】
従ってCPU10はこの写像されたRAM12のアドレス空間上に存在する実行コードを実行することができる。
ここでROM11に格納されている固定プログラムにはPCとしての基本処理や演算処理用サブルーチン等のシステムとして常時必要なシステムプログラムと、通信処理プログラム等、コンパイル処理のプログラム等常時必要としないプログラムとがあり、この常時必要とするプログラムが常駐するアドレス空間としてアドレス空間X11が割り当てられ、常時必要としないプログラムの格納アドレス空間として特定アドレス空間X10が割り当てられる。
【0013】
一方特定アドレス空間X10に写像されるRAM12のアドレス空間はRAM12にプログラム(PROG)モードでロードされるユーザープログラムのソースコードをコンパイルして生成した実行コードを格納するコンパイル用アドレス空間が対応する。
次に本発明の主要構成に対応する動作を図4に示すフローチャートに基づいて説明する。
【0014】
まずPCはPROG(プログラム)モードと、RUN(実行)モードのモードが設定できるようになっておりPROGモードが設定されているときには、CPU10はROM11に格納されているプログラミングツールとの間の通信処理を行うプログラムを実行し、プログラミングツールからユーザープログラムのソースコードをRAM12にロードしたり、あるはデバッグのためにRAM12上のソーソコードをプログラミングツールへ転送する処理が行われる。
【0015】
さてユーザープログラムがRAM12上にロードされた後、このユーザープログラムを実行するためにRUNモードが設定されると、CPU10は第1回目の実行スキャンを開始するに当たり、ROM11上のコンパイル用のプログラムを実行してRAM12上のユーザープログラムのソースコードをCPU10が高速に実行可能なコードにコンパイル用アドレス空間(図3ではコンパイル用RAMと表記)でコンパイルする。
【0016】
このコンパイル後、入出力I/O(図示せず)リフレッシュの処理を行い、この処理後デバイス選択レジスタ13に”1”を設定し、特定アドレス空間X10をアクセスする際にアドレスデコード回路14が選択するメモリデバイスをROM11からRAM12となるようにする。従って特定アドレス空間X10がアクセスされると、該空間X10(図3ではROM空間と表記)にRAM12のアドレス空間(図3ではコンパル用空間と表記)を写像することになる。
【0017】
次にCPU10は特定アドレス空間X10に写像されたRAM12のアドレス空間上の実行コードを実行して演算処理を行う。この演算処理が終了すると、CPU10はデバイス選択レジスタ13に”0”を設定する。従って特定アドレス空間X10がアクセスされるとアドレスデコード回路14が選択するメモリデバイスをRAM12からROM11に戻して、ROM11の当該アドレス空間がコールされることになる。
【0018】
そしてCPU10はROM11の特定アドレス空間X10に格納されている通信処理のプログラムの実行コードを実行して、第1回目の実行スキャンを処理する。
以後RUNモードが設定されている間、CPU10は毎実行スキャン時に入出力I/O(図示せず)リフレッシュの処理終了する過程と、デバイス選択レジスタ13に”1”を設定し、特定アドレス空間X10をアクセスする際にアドレスデコード回路14が選択するメモリデバイスをROM11からRAM12となるようにする過程と、既にコンパイルされてRAM12のコンパイル用アドレス空間に格納されているユーザープログラムの実行コードを実行して演算処理を行う過程と、この演算処理終了後デバイス選択レジスタ13に”0”を設定し、特定アドレス空間X10をアクセスする際にアドレスデコード回路14が選択するメモリデバイスをRAM12からROM11に戻す過程と、ROM11の特定アドレス空間X10に格納されている通信処理のプログラムの実行コードを実行する過程とからなる動作を繰り返す。
【0019】
このように本実施形態では、RAM12上でコンパイルされて得られたユーザープログラムの実行コードを格納しているアドレス空間を、実行コードが格納されてCPU10により実行可能なメモリアドレスアドレス空間X1 内の特定アドレス空間X10に写像することで、大きな容量のユーザープグラムを用いることが可能となる上に、ユーザープログラムを実行しない時にはアドレス空間X1 をROM11で占有させることができ、そのためROM11に格納するプログラムを増やすことが可能となってPCの機能を増やせるということができる。
【0020】
(実施形態2)
実施形態1ではCPU10がデータとしてアクセスできるアドレス空間X2 をCPU10が実行可能な実行コードが格納されるアドレス空間X1 とは別個に持つことができる場合であったが、CPU10がアクセスできるアドレス空間がデータと実行コードとも同じアドレス空間X1 に限定される場合に対応するのが本実施例である。
【0021】
つまり、図4のフローチャートで示すように本実施例ではRUNモードになってから最初の実行スキャン時に、まずデバイス選択レジスタ13に”1”を設定し、特定アドレス空間X10をアクセスする際にアドレスデコード回路14が選択するメモリデバイスを図5に示すようにROM11からRAM12となるようにするRAM12のアドレス空間を特定アドレス空間X10(図4ではROM空間と表記)に写像する。この写像されるRAM12のアドレス空間(図4ではRAM空間と表記)にはユーザープログラムのソースコードを予め格納しており、写像後、ROM11のアドレス空間X11内に格納されているコンパイル用のプログラムを実行して、特定アドレス空間X10に写像されたRAM12上のソースコードをコンパイルして実行コード(例えばマシンコード)を生成する。
【0022】
以後の動作は実施形態1と同じ動作となるため省略する。またPCとしての構成は実施形態1と同じであるため実施形態1の図を参照して特にここでは示さない。
【0023】
【発明の効果】
請求項1の発明は、CPUと、システムプログラム等の固定プログラムを格納したROMと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるRAMと、CPUからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、CPUが実行コードを読み出して実行することができるアドレス空間をROMに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりRAMにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にCPUはコンパイルされてCPUが高速で実行可能な実行コードとなったユーザープログラムを格納しているRAMのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたRAM上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がROMを選択するように設定し、この設定により選択されたROMの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行するので、RAM上でコンパイルされて得られたユーザープログラムの実行コードを格納しているアドレス空間を、実行コードが格納されてCPUにより実行可能なメモリアドレスアドレス空間内の特定アドレス空間に写像することで、大きな容量のユーザープグラムを用いることが可能となる上に、ユーザープログラムを実行しない時には実行コードが格納されてCPUにより実行することが可能なアドレス空間をROMで占有させることができ、そのためROMに格納するプログラムを増やすことが可能となり、PCの機能を増やせるということができるという効果がある。
【0024】
請求項2の発明は、請求項1の発明において、最初の実行スキャン時にRAM上のユーザープログラムのソースコードをCPUが実行可能な実行コードにコンパイルして、このコンパイル後CPUのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したRAMを選択してRAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定するので、CPUが実行する実行コードが格納できるアドレス空間以外にデータとしてCPUがアクセス可能なアドレス空間を管理することができるCPUを用いる場合に有効となる。
【0025】
請求項3の発明は、請求項1の発明において、最初の実行スキャン時にCPUによりアドレスデコード手段に対する設定によりソースプログラムを格納しているRAMを選択し、RAMの特定アドレス空間に対応するアドレス空間においてソースプログラムをCPUが実行可能な実行コードにコンパイルして、このコンパイル後RAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定するので、アドレス空間が実行する実行コードが格納できるアドレス空間のみ管理するCPUを使用する場合に有効となる。
【図面の簡単な説明】
【図1】本発明の実施形態1のシステム構成図である。
【図2】同上で用いるアドレス空間の構成説明図である。
【図3】同上の動作説明用フローチャートである。
【図4】本発明の実施形態2の動作説明用フローチャートである。
【図5】同上で用いるアドレス空間の構成説明図である。
【図6】従来例のアドレス空間の構成説明図である。
【符号の説明】
10 CPU
11 ROM
12 RAM
13 デバイス選択レジスタ
14 アドレスデコード回路
Claims (3)
- CPUと、システムプログラム等の固定プログラムを格納したROMと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるRAMと、CPUからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、CPUが実行コードを読み出して実行することができるアドレス空間をROMに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりRAMにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にCPUはコンパイルされてCPUが高速で実行可能な実行コードとなったユーザープログラムを格納しているRAMのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたRAM上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がROMを選択するように設定し、この設定により選択されたROMの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行することを特徴とするプログラマブルコントローラ。
- 最初の実行スキャン時にRAM上のユーザープログラムのソースコードをCPUが実行可能な実行コードにコンパイルして、このコンパイル後CPUのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したRAMを選択してRAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定することを特徴とする請求項1記載のプログラマブルコントローラ。
- 最初の実行スキャン時にCPUによりアドレスデコード手段に対する設定によりソースプログラムを格納しているRAMを選択し、RAMの特定アドレス空間に対応するアドレス空間においてソースプログラムをCPUが実行可能な実行コードにコンパイルして、このコンパイル後RAMに格納してある実行コードをCPUが実行することにより演算処理を行い、以後毎実行スキャン時にCPUがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているRAMを選択するようにアドレスデコード手段を設定することを特徴とする請求項1記載のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04923396A JP3582210B2 (ja) | 1996-03-06 | 1996-03-06 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04923396A JP3582210B2 (ja) | 1996-03-06 | 1996-03-06 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09244949A JPH09244949A (ja) | 1997-09-19 |
JP3582210B2 true JP3582210B2 (ja) | 2004-10-27 |
Family
ID=12825192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04923396A Expired - Fee Related JP3582210B2 (ja) | 1996-03-06 | 1996-03-06 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3582210B2 (ja) |
-
1996
- 1996-03-06 JP JP04923396A patent/JP3582210B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09244949A (ja) | 1997-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100302980B1 (ko) | 그래프컬러링레지스터할당기에대한지역문맥스필링을위한시스템 | |
US6725448B1 (en) | System to optimally create parallel processes and recording medium | |
KR950704737A (ko) | 데이타 처리 시스템 및 운영시스템(Data processing system and operating system) | |
JP3582210B2 (ja) | プログラマブルコントローラ | |
JP2005129001A (ja) | プログラム実行装置、マイクロプロセッサ及びプログラム実行方法 | |
JP2002099498A (ja) | プログラム実行装置およびプログラム開発支援装置 | |
KR20060035077A (ko) | 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법 | |
JPS6145243B2 (ja) | ||
JP4760607B2 (ja) | プログラマブルコントローラ | |
JP2004070439A (ja) | データの記憶領域への配置を決定するコンパイラ装置及び配置決定方法 | |
US20040024935A1 (en) | Programmable controller | |
KR101548960B1 (ko) | 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치 | |
KR0179840B1 (ko) | 레지스터 제어장치 | |
WO1997033226A1 (fr) | Controleur programmable | |
EP1096373A2 (en) | Microprocessor and program modification method in the microprocessor | |
JPH11259308A (ja) | プログラマブルコントローラ | |
JP2001356916A (ja) | メモリブロック化コンパイラ及びプログラム実行方法 | |
JPH0713770A (ja) | ロードストア型プロセッサの付加的レジスタを利用する際のコンパイル方法 | |
JP2003076558A (ja) | プログラム実行制御方法及びプログラム実行制御プログラム | |
KR950006586B1 (ko) | 메모리 제어방법 | |
JPH01123328A (ja) | 計算機方式 | |
JPH02270032A (ja) | ローディング方式 | |
CN115374740A (zh) | 面向云服务的性能与隔离性定制化硬件虚拟化方法及装置 | |
JP2007058256A (ja) | プログラマブルコントローラ | |
JPH11175115A (ja) | プログラマブルコントローラの高速処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040719 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070806 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |