(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、システムプログラム等の固定プログラムを格納したＲＯＭと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるＲＡＭと、ＣＰＵからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、ＣＰＵが実行コードを読み出して実行することができるアドレス空間をＲＯＭに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりＲＡＭにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にＣＰＵはコンパイルされてＣＰＵが高速で実行可能な実行コードとなったユーザープログラムを格納しているＲＡＭのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたＲＡＭ上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がＲＯＭを選択するように設定し、この設定により選択されたＲＯＭの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行することを特徴とするプログラマブルコントローラ。
【請求項２】
最初の実行スキャン時にＲＡＭ上のユーザープログラムのソースコードをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＣＰＵのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したＲＡＭを選択してＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
最初の実行スキャン時にＣＰＵによりアドレスデコード手段に対する設定によりソースプログラムを格納しているＲＡＭを選択し、ＲＡＭの特定アドレス空間に対応するアドレス空間においてソースプログラムをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定することを特徴とする請求項１記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラに関するものである。
【０００２】
【従来の技術】
従来、高速に演算することが可能なマシンコードのようなの実行コードにユーザーププログラムをコンパイルして実行するプログラマブルコントローラには、図６に示すように使用するＣＰＵがアクセス可能なアドレス空間Ｘ内にシステムプログラム用ＲＯＭ１や、システム実行時のシステムワーク用やユーザープログラム格納用のＲＡＭ２を固定的に配置するようにアドレスデコード回路を構成していた。
【０００３】
【発明が解決しようとする課題】
上記のような構成では使用するＣＰＵがアクセスできるアドレス空間Ｘ以上にＲＯＭ１やＲＡＭ２の容量を拡張することができなかった。そのためより大きな容量のユーザープログラムを持つプログラマブルコントローラを開発することができなかった。
【０００４】
一方ＣＰＵが実行可能な実行コードを格納するアドレス空間とは別にデータとしてアクセス可能なアドレス空間を持つことができるＣＰＵが存在しているが、この場合もユーザープログラムの実行コード（マシンコード）を格納したＲＡＭのアドレス空間をＣＰＵが実行可能な実行コードを格納するアドレス空間に割り当てる必要があり、システムプログラムを格納したＲＯＭが占有するアドレス空間を、ＣＰＵが実行可能な実行コードを格納するアドレス空間から差し引いた空間がユーザープログラムに解放されるだけであるため、大きな容量のユーザープログラムを用いることや、逆に大きな容量のシステムプログラムを格納したＲＯＭを使用することができなかった。
【０００５】
本発明は上記問題点に鑑みて為されたもので、その目的とするところはＣＰＵが実行コードをアクセスすることができるアドレス空間を有効に使用でき、大きな容量のユーザープログラムを用いることが可能なプログラマブルコントローラを提供するにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために請求項１の発明では、ＣＰＵと、システムプログラム等の固定プログラムを格納したＲＯＭと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるＲＡＭと、ＣＰＵからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、ＣＰＵが実行コードを読み出して実行することができるアドレス空間をＲＯＭに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりＲＡＭにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にＣＰＵはコンパイルされてＣＰＵが高速で実行可能な実行コードとなったユーザープログラムを格納しているＲＡＭのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたＲＡＭ上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がＲＯＭを選択するように設定し、この設定により選択されたＲＯＭの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行することを特徴とする。
【０００７】
請求項２の発明では、請求項１記載の発明において、最初の実行スキャン時にＲＡＭ上のユーザープログラムのソースコードをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＣＰＵのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したＲＡＭを選択してＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定することを特徴とする。
【０００８】
請求項３の発明では、請求項１記載の発明において、最初の実行スキャン時にＣＰＵによりアドレスデコード手段に対する設定によりソースプログラムを格納しているＲＡＭを選択し、ＲＡＭの特定アドレス空間に対応するアドレス空間においてソースプログラムをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定することを特徴とする。
【０００９】
【発明の実施の形態】
以下、本発明を実施形態により説明する。
（実施形態１）
図１は本実施形態のプログラマブルコントローラ（以下ＰＣと略する）の構成を示しており、ＣＰＵ１０と、コンパイル処理のプログラムや、通信処理のプログラムを含むシステムプログラム等のプログラムの実行コード（例えばマシンコード）を格納したＲＯＭ１１（勿論デバイスとしては複数使用してもよいが説明を簡単にするためにデバイスを一つとして図示している。）と、システムプログラムの実行時のワークアドレス空間や、ユーザープログラムのソースコード、更には該ソースコードをコンパイルして得られた実行コードを格納するアドレス空間が設けられるとともに、更にはデータの一時格納等に用いられるＲＡＭ１２（勿論デバイスとしては複数使用してもよいが説明を簡単にするためにデバイスを一つとして図示している。）と、ＣＰＵ１０が実行コードをアクセスして実行することが可能なアドレス空間にアドレス空間を割り当てるメモリデバイスを選択するデータがＣＰＵ１０により設定されるデバイス選択レジスタ１３と、このデバイス選択レジスタ１３に設定されたデータの内容に基づいて特定のアドレス空間のアドレスデータがＣＰＵ１０より出力された時にセレクト信号Ｓ１  又はＳ２  を出力して当該特定アドレス空間にアドレスを割り当てるメモリデバイスとしてＲＯＭ１１又はＲＡＭ１２の何れか一方を選択するアドレスデコード回路１４とを備えている。ここでデバイス選択レジスタ１３とアドレスデコード回路１４とがアドレスデコード手段を構成する。なお図１中ＤＢはデータバス、ＡＢはアドレスバスを示す。
【００１０】
ここで本実施形態のプログラマブルコントローラに用いるＣＰＵ１０は図２に示すように実行コードをアクセスして実行できるアドレス空間Ｘ１  と、データとして独立してアクセスできるメモリアアドレス空間Ｘ２  とを夫々別個に持つことができるものを使用しており、実施形態ではアドレス空間Ｘ１  を占有する容量のＲＯＭ１１と、アドレス空間Ｘ２  を占有する容量のＲＡＭ１２とを用いるとともに、アドレス空間Ｘ１  の一部をアドレスデコード手段によりＲＯＭ１１又はＲＡＭ１２を選択して割り当てることができる特定アドレス空間Ｘ１０とし、残りのアドレス空間をＲＯＭ１１が常時占有するアドレス空間Ｘ１１としている。
【００１１】
つまりＣＰＵ１０がデバイス選択レジスタ１３に”０”を設定すると、アドレスデコード回路１４は特定アドレス空間Ｘ１０がアクセスされる際にＲＯＭ１１に割り当てる。つまりこの場合ＲＯＭ１１全体でアドレス空間Ｘ１  を占有することになる。ＣＰＵ１０がデバイス選択レジスタ１３に”１”を設定すると、アドレスデコード回路１４は特定アドレス空間Ｘ１０がアクセスされるとその特定アドレス空間Ｘ１０にＲＡＭ１２の対応するアドレス空間つまり、コンパイル用アドレス空間を写像する。
【００１２】
従ってＣＰＵ１０はこの写像されたＲＡＭ１２のアドレス空間上に存在する実行コードを実行することができる。
ここでＲＯＭ１１に格納されている固定プログラムにはＰＣとしての基本処理や演算処理用サブルーチン等のシステムとして常時必要なシステムプログラムと、通信処理プログラム等、コンパイル処理のプログラム等常時必要としないプログラムとがあり、この常時必要とするプログラムが常駐するアドレス空間としてアドレス空間Ｘ１１が割り当てられ、常時必要としないプログラムの格納アドレス空間として特定アドレス空間Ｘ１０が割り当てられる。
【００１３】
一方特定アドレス空間Ｘ１０に写像されるＲＡＭ１２のアドレス空間はＲＡＭ１２にプログラム（ＰＲＯＧ）モードでロードされるユーザープログラムのソースコードをコンパイルして生成した実行コードを格納するコンパイル用アドレス空間が対応する。
次に本発明の主要構成に対応する動作を図４に示すフローチャートに基づいて説明する。
【００１４】
まずＰＣはＰＲＯＧ（プログラム）モードと、ＲＵＮ（実行）モードのモードが設定できるようになっておりＰＲＯＧモードが設定されているときには、ＣＰＵ１０はＲＯＭ１１に格納されているプログラミングツールとの間の通信処理を行うプログラムを実行し、プログラミングツールからユーザープログラムのソースコードをＲＡＭ１２にロードしたり、あるはデバッグのためにＲＡＭ１２上のソーソコードをプログラミングツールへ転送する処理が行われる。
【００１５】
さてユーザープログラムがＲＡＭ１２上にロードされた後、このユーザープログラムを実行するためにＲＵＮモードが設定されると、ＣＰＵ１０は第１回目の実行スキャンを開始するに当たり、ＲＯＭ１１上のコンパイル用のプログラムを実行してＲＡＭ１２上のユーザープログラムのソースコードをＣＰＵ１０が高速に実行可能なコードにコンパイル用アドレス空間（図３ではコンパイル用ＲＡＭと表記）でコンパイルする。
【００１６】
このコンパイル後、入出力Ｉ／Ｏ（図示せず）リフレッシュの処理を行い、この処理後デバイス選択レジスタ１３に”１”を設定し、特定アドレス空間Ｘ１０をアクセスする際にアドレスデコード回路１４が選択するメモリデバイスをＲＯＭ１１からＲＡＭ１２となるようにする。従って特定アドレス空間Ｘ１０がアクセスされると、該空間Ｘ１０（図３ではＲＯＭ空間と表記）にＲＡＭ１２のアドレス空間（図３ではコンパル用空間と表記）を写像することになる。
【００１７】
次にＣＰＵ１０は特定アドレス空間Ｘ１０に写像されたＲＡＭ１２のアドレス空間上の実行コードを実行して演算処理を行う。この演算処理が終了すると、ＣＰＵ１０はデバイス選択レジスタ１３に”０”を設定する。従って特定アドレス空間Ｘ１０がアクセスされるとアドレスデコード回路１４が選択するメモリデバイスをＲＡＭ１２からＲＯＭ１１に戻して、ＲＯＭ１１の当該アドレス空間がコールされることになる。
【００１８】
そしてＣＰＵ１０はＲＯＭ１１の特定アドレス空間Ｘ１０に格納されている通信処理のプログラムの実行コードを実行して、第１回目の実行スキャンを処理する。
以後ＲＵＮモードが設定されている間、ＣＰＵ１０は毎実行スキャン時に入出力Ｉ／Ｏ（図示せず）リフレッシュの処理終了する過程と、デバイス選択レジスタ１３に”１”を設定し、特定アドレス空間Ｘ１０をアクセスする際にアドレスデコード回路１４が選択するメモリデバイスをＲＯＭ１１からＲＡＭ１２となるようにする過程と、既にコンパイルされてＲＡＭ１２のコンパイル用アドレス空間に格納されているユーザープログラムの実行コードを実行して演算処理を行う過程と、この演算処理終了後デバイス選択レジスタ１３に”０”を設定し、特定アドレス空間Ｘ１０をアクセスする際にアドレスデコード回路１４が選択するメモリデバイスをＲＡＭ１２からＲＯＭ１１に戻す過程と、ＲＯＭ１１の特定アドレス空間Ｘ１０に格納されている通信処理のプログラムの実行コードを実行する過程とからなる動作を繰り返す。
【００１９】
このように本実施形態では、ＲＡＭ１２上でコンパイルされて得られたユーザープログラムの実行コードを格納しているアドレス空間を、実行コードが格納されてＣＰＵ１０により実行可能なメモリアドレスアドレス空間Ｘ１  内の特定アドレス空間Ｘ１０に写像することで、大きな容量のユーザープグラムを用いることが可能となる上に、ユーザープログラムを実行しない時にはアドレス空間Ｘ１  をＲＯＭ１１で占有させることができ、そのためＲＯＭ１１に格納するプログラムを増やすことが可能となってＰＣの機能を増やせるということができる。
【００２０】
（実施形態２）
実施形態１ではＣＰＵ１０がデータとしてアクセスできるアドレス空間Ｘ２  をＣＰＵ１０が実行可能な実行コードが格納されるアドレス空間Ｘ１  とは別個に持つことができる場合であったが、ＣＰＵ１０がアクセスできるアドレス空間がデータと実行コードとも同じアドレス空間Ｘ１  に限定される場合に対応するのが本実施例である。
【００２１】
つまり、図４のフローチャートで示すように本実施例ではＲＵＮモードになってから最初の実行スキャン時に、まずデバイス選択レジスタ１３に”１”を設定し、特定アドレス空間Ｘ１０をアクセスする際にアドレスデコード回路１４が選択するメモリデバイスを図５に示すようにＲＯＭ１１からＲＡＭ１２となるようにするＲＡＭ１２のアドレス空間を特定アドレス空間Ｘ１０（図４ではＲＯＭ空間と表記）に写像する。この写像されるＲＡＭ１２のアドレス空間（図４ではＲＡＭ空間と表記）にはユーザープログラムのソースコードを予め格納しており、写像後、ＲＯＭ１１のアドレス空間Ｘ１１内に格納されているコンパイル用のプログラムを実行して、特定アドレス空間Ｘ１０に写像されたＲＡＭ１２上のソースコードをコンパイルして実行コード（例えばマシンコード）を生成する。
【００２２】
以後の動作は実施形態１と同じ動作となるため省略する。またＰＣとしての構成は実施形態１と同じであるため実施形態１の図を参照して特にここでは示さない。
【００２３】
【発明の効果】
請求項１の発明は、ＣＰＵと、システムプログラム等の固定プログラムを格納したＲＯＭと、ユーザープログラムのソースコードを格納するアドレス空間やソースコードをコンパイルするためのアドレス空間が設定されるＲＡＭと、ＣＰＵからの設定により特定アドレス空間をアクセスすると当該アドレス空間の割当てを現在のメモリデバイスから別のメモリデバイスを選択するアドレスデコード手段とを備え、ＣＰＵが実行コードを読み出して実行することができるアドレス空間をＲＯＭに割当てるとともに、該アドレス空間の一部をアドレスデコード手段の選択によりＲＡＭにも割り当てられる特定アドレス空間として用い、毎実行スキャン時にＣＰＵはコンパイルされてＣＰＵが高速で実行可能な実行コードとなったユーザープログラムを格納しているＲＡＭのアドレス空間が特定アドレス空間となるようにアドレスデコード手段を設定し、この設定にて選択されたＲＡＭ上の実行コードを実行することにより演算処理を行い、この演算終了後にアドレスデコード手段がＲＯＭを選択するように設定し、この設定により選択されたＲＯＭの特定アドレス空間に対応するアドレス空間に格納されているプログラムを実行するので、ＲＡＭ上でコンパイルされて得られたユーザープログラムの実行コードを格納しているアドレス空間を、実行コードが格納されてＣＰＵにより実行可能なメモリアドレスアドレス空間内の特定アドレス空間に写像することで、大きな容量のユーザープグラムを用いることが可能となる上に、ユーザープログラムを実行しない時には実行コードが格納されてＣＰＵにより実行することが可能なアドレス空間をＲＯＭで占有させることができ、そのためＲＯＭに格納するプログラムを増やすことが可能となり、ＰＣの機能を増やせるということができるという効果がある。
【００２４】
請求項２の発明は、請求項１の発明において、最初の実行スキャン時にＲＡＭ上のユーザープログラムのソースコードをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＣＰＵのアドレスデコード手段に対する設定により、特定アドレス空間を実行コードを格納したＲＡＭを選択してＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定するので、ＣＰＵが実行する実行コードが格納できるアドレス空間以外にデータとしてＣＰＵがアクセス可能なアドレス空間を管理することができるＣＰＵを用いる場合に有効となる。
【００２５】
請求項３の発明は、請求項１の発明において、最初の実行スキャン時にＣＰＵによりアドレスデコード手段に対する設定によりソースプログラムを格納しているＲＡＭを選択し、ＲＡＭの特定アドレス空間に対応するアドレス空間においてソースプログラムをＣＰＵが実行可能な実行コードにコンパイルして、このコンパイル後ＲＡＭに格納してある実行コードをＣＰＵが実行することにより演算処理を行い、以後毎実行スキャン時にＣＰＵがユーザープログラムの実行コードを実行して演算を行う場合に実行コードが格納されているＲＡＭを選択するようにアドレスデコード手段を設定するので、アドレス空間が実行する実行コードが格納できるアドレス空間のみ管理するＣＰＵを使用する場合に有効となる。
【図面の簡単な説明】
【図１】本発明の実施形態１のシステム構成図である。
【図２】同上で用いるアドレス空間の構成説明図である。
【図３】同上の動作説明用フローチャートである。
【図４】本発明の実施形態２の動作説明用フローチャートである。
【図５】同上で用いるアドレス空間の構成説明図である。
【図６】従来例のアドレス空間の構成説明図である。
【符号の説明】
１０    ＣＰＵ
１１    ＲＯＭ
１２    ＲＡＭ
１３    デバイス選択レジスタ
１４    アドレスデコード回路
【図１】
0003582210.tif 000002
【図２】
0003582210.tif 000003
【図３】
0003582210.tif 000004
【図４】
0003582210.tif 000005
【図５】
0003582210.tif 000006
【図６】
0003582210.tif 000007